Releases: noir-lang/noir
Releases · noir-lang/noir
nightly-2024-09-05: feat: warn on unused functions (#5892)
# Description ## Problem Now that we warn on unused imports, doing that for functions too is relatively straight-forward. ## Summary Now unused private or `pub(crate)` functions will be reported as unused. ## Additional Context I'd like to try this on some Aztec-Packages projects, but for that it would be nice to merge #5895 first so I could get all warnings/errors for a package inside VS Code. We can eventually do the same thing with globals, traits, etc., once we track their visibility. I also think we could warn on unused `pub` functions in a "bin" or "contract" package, not sure... but if we decide to do that, it could be a separate PR. ## Documentation Check one: - [x] No documentation needed. - [ ] Documentation included in this PR. - [ ] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings.
nightly-2024-09-04: chore: make nested slice error more clear for `[[T]; N]` case (#5906)
nightly-2024-09-04: chore: make nested slice error more clear for `[[T]; N]` case (#5906)
Pre-release
Pre-release
# Description ## Problem\* The `NestedSlice` error is unclear when there is only one slice: ```bash error: Nested slices are not supported ┌─ /Users/michaelklein/Coding/noir/two_tag/src/main.nr:31:12 │ 31 │ rules: [[Field]; N], │ ------------ Try to use a constant sized array instead ``` ## Summary\* Rephrases the `NestedSlice` error message to make it more clear that slices within arrays or other slices are disallowed. ## Additional Context ## Documentation\* Check one: - [x] No documentation needed. - [ ] Documentation included in this PR. - [ ] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist\* - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings.
nightly-2024-09-03: feat: use visibility (#5856)
# Description ## Problem Part of #4515 ## Summary We recently added a warning for unused imports... but only for bin and contract packages. We didn't enable it for lib packages because a `use` could also be used as `pub use`, something we don't have yet. I thought it would be really nice if we had `pub use`, and warned on unused imports in libs too. I checked the code and we already track visibility for any item, in general, it's just that for things that don't allow a visibility modifier we just consider it's public. So I tried to see how difficult it would be to implement it, and it turned out it wasn't that hard or time-consuming. That said, visibility for `use` involves some more logic, particularly for autocompletion, because now `pub use` should be suggested, but the "parent" module of that item isn't the actual parent (it's the module where the `pub use` is defined) but that was relatively striaght-forward to implement too. ## Additional Context If we decide to go forward with this, any existing `use` that was used as `pub use` will likely start producing a warning for libs (a lot of them in Aztec-Packages), but now that can be silenced by changing them to `pub use`. Where should this new feature be documented? I'm not sure if it should go in `dependencies.md` or `modules.md`. ## Documentation\* Check one: - [ ] No documentation needed. - [x] Documentation included in this PR. - [ ] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings. --------- Co-authored-by: Tom French <[email protected]>
v0.33.0
0.33.0 (2024-08-06)
⚠ BREAKING CHANGES
- parse block and if statements independently of expressions in statements (#5634)
- frontend: Restrict numeric generic types to unsigned ints up to
u32
(#5581)
Features
- acir_gen: Width aware ACIR gen addition (#5493) (85fa592)
- Add
FunctionDefinition::parameters
,FunctionDefinition::return_type
andimpl Eq for Quoted
(#5681) (d52fc05) - Add
std::meta::type_of
andimpl Eq for Type
(#5669) (0503956) - Add
TraitDefinition::as_trait_constraint()
(#5541) (0943223) - Add
Type::as_struct
(#5680) (ade69a9) - Add
Type::is_field
andType::as_integer
(#5670) (939357a) - Add
Type
methods:as_tuple
,as_slice
,as_array
,as_constant
,is_bool
(#5678) (604fa0d) - Add a compile-time hash map type (#5543) (c6e5c4b)
- Add a limited form of arithmetic on generics (#5625) (0afb680)
- Add parameter to call_data attribute (#5599) (e8bb341)
- Allow inserting LSP inlay type hints (#5620) (b33495d)
- Avoid heap allocs when going to/from field (AztecProtocol/aztec-packages#7547) (daad75c)
- Derive
Ord
andHash
in the stdlib; addstd::meta::make_impl
helper (#5683) (38397d3) - Don't eagerly error on cast expressions (#5635) (0ca5d9d)
- Implement
poseidon2_permutation
in comptime interpreter (#5590) (89dfbbf) - Implement
Value::Type
in comptime interpreter (#5593) (4c3bf97) - Implement
zeroed
in the interpreter (#5540) (ff8ca91) - Implement closures in the comptime interpreter (#5682) (9e2a323)
- Implement format strings in the comptime interpreter (#5596) (fd7002c)
- Integrate new proving systems in e2e (AztecProtocol/aztec-packages#6971) (daad75c)
- Let filenames in errors be relative to the current dir if possible (#5642) (f656681)
- Let LSP work will with code generated by macros (#5665) (8122624)
- LSP closing brace hints (#5686) (2b18151)
- LSP hover now includes "Go to" links (#5677) (d466d49)
- LSP inlay parameter hints (#5553) (822fe2c)
- LSP inlay type hints on lambda parameters (#5639) (80128ff)
- Make Brillig do integer arithmetic operations using u128 instead of Bigint (AztecProtocol/aztec-packages#7518) (daad75c)
- noir_js: Expose UltraHonk and integration tests (#5656) (4552b4f)
- Remove 'comptime or separate crate' restriction on comptime code (#5609) (1cddf42)
- Resolve arguments to attributes (#5649) (e139002)
- ssa: Simple serialization of unoptimized SSA to file (#5679) (07ea107)
- Sync from noir (AztecProtocol/aztec-packages#7432) (daad75c)
- Sync from noir (AztecProtocol/aztec-packages#7444) (daad75c)
- Sync from noir (AztecProtocol/aztec-packages#7454) (daad75c)
- Sync from noir (AztecProtocol/aztec-packages#7512) (daad75c)
- Sync from noir (AztecProtocol/aztec-packages#7577) (daad75c)
- Sync from noir (AztecProtocol/aztec-packages#7583) (daad75c)
- Turbofish in struct pattern (#5616) (b3c408b)
- Turbofish operator in struct constructor (#5607) (106abd7)
- Turbofish operator on path segments (#5603) (0bb8372)
- Typing return values of embedded_curve_ops (AztecProtocol/aztec-packages#7413) (daad75c)
Bug Fixes
- 'cannot eval non-comptime global' error (#5586) (0a987c7)
NoMatchingImplFound
in comptime code only (#5617) (28211a3)- Add trailing extra arguments for backend in gates_flamegraph (AztecProtocol/aztec-packages#7472) (daad75c)
- Allow calling a trait method with paths that don't consist of exactly two segments (#5577) (88c0a40)
- Allow trailing comma when parsing where clauses (#5594) (75bfe13)
- Allow using Self for function calls (#5629) (b7e4f42)
- Correct span for prefix operator (#5624) (5824785)
- Correctly track sourc...
nightly-2024-08-06: chore: Release Noir(0.33.0) (#5550)
:robot: I have created a release *beep* *boop* --- <details><summary>0.33.0</summary> ## [0.33.0](https://github.com/noir-lang/noir/compare/v0.32.0...v0.33.0) (2024-08-06) ### ⚠ BREAKING CHANGES * parse block and if statements independently of expressions in statements ([#5634](https://github.com/noir-lang/noir/issues/5634)) * **frontend:** Restrict numeric generic types to unsigned ints up to `u32` ([#5581](https://github.com/noir-lang/noir/issues/5581)) ### Features * **acir_gen:** Width aware ACIR gen addition ([#5493](https://github.com/noir-lang/noir/issues/5493)) ([85fa592](https://github.com/noir-lang/noir/commit/85fa592fdef3b8589ce03b232e1b51565837b540)) * Add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` ([#5681](https://github.com/noir-lang/noir/issues/5681)) ([d52fc05](https://github.com/noir-lang/noir/commit/d52fc056ae5dec4457dd869d50dd9a6e5b0b5cb1)) * Add `std::meta::type_of` and `impl Eq for Type` ([#5669](https://github.com/noir-lang/noir/issues/5669)) ([0503956](https://github.com/noir-lang/noir/commit/05039568e317c16cecc173717e63288e7ca3890c)) * Add `TraitDefinition::as_trait_constraint()` ([#5541](https://github.com/noir-lang/noir/issues/5541)) ([0943223](https://github.com/noir-lang/noir/commit/094322381da67e2b9aef27b5558ba98a47abfccc)) * Add `Type::as_struct` ([#5680](https://github.com/noir-lang/noir/issues/5680)) ([ade69a9](https://github.com/noir-lang/noir/commit/ade69a9e5f1546249e9b43b40e9ff0da87c4632e)) * Add `Type::is_field` and `Type::as_integer` ([#5670](https://github.com/noir-lang/noir/issues/5670)) ([939357a](https://github.com/noir-lang/noir/commit/939357acae87eae833ff10572f7a1ad52b35d94e)) * Add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` ([#5678](https://github.com/noir-lang/noir/issues/5678)) ([604fa0d](https://github.com/noir-lang/noir/commit/604fa0d85c1a0c47c7c0b8402576afb61ceb664b)) * Add a compile-time hash map type ([#5543](https://github.com/noir-lang/noir/issues/5543)) ([c6e5c4b](https://github.com/noir-lang/noir/commit/c6e5c4b304eb4e87ca519151f610e7e03b1a4fba)) * Add a limited form of arithmetic on generics ([#5625](https://github.com/noir-lang/noir/issues/5625)) ([0afb680](https://github.com/noir-lang/noir/commit/0afb6805e3c3cbe0f84f39d9e2e57e038450547d)) * Add parameter to call_data attribute ([#5599](https://github.com/noir-lang/noir/issues/5599)) ([e8bb341](https://github.com/noir-lang/noir/commit/e8bb3417d276d17db85b408b825e61c32fa20744)) * Allow inserting LSP inlay type hints ([#5620](https://github.com/noir-lang/noir/issues/5620)) ([b33495d](https://github.com/noir-lang/noir/commit/b33495d0799f7c296cf6e284ea19abbbe5821793)) * Avoid heap allocs when going to/from field (https://github.com/AztecProtocol/aztec-packages/pull/7547) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper ([#5683](https://github.com/noir-lang/noir/issues/5683)) ([38397d3](https://github.com/noir-lang/noir/commit/38397d346aac4ec19026ede2776e776fdceb854c)) * Don't eagerly error on cast expressions ([#5635](https://github.com/noir-lang/noir/issues/5635)) ([0ca5d9d](https://github.com/noir-lang/noir/commit/0ca5d9d7b389d24cf48fa62a29cb437b1855438a)) * Implement `poseidon2_permutation` in comptime interpreter ([#5590](https://github.com/noir-lang/noir/issues/5590)) ([89dfbbf](https://github.com/noir-lang/noir/commit/89dfbbfe6efffcce9a44c39ccf7e92036a0e222a)) * Implement `Value::Type` in comptime interpreter ([#5593](https://github.com/noir-lang/noir/issues/5593)) ([4c3bf97](https://github.com/noir-lang/noir/commit/4c3bf97fe7475f1027285cb5ad26b3c578a632b7)) * Implement `zeroed` in the interpreter ([#5540](https://github.com/noir-lang/noir/issues/5540)) ([ff8ca91](https://github.com/noir-lang/noir/commit/ff8ca91efc925bf8bdbe7f2d2feb651981c5c1b9)) * Implement closures in the comptime interpreter ([#5682](https://github.com/noir-lang/noir/issues/5682)) ([9e2a323](https://github.com/noir-lang/noir/commit/9e2a3232c8849f19732472e75840717b8b95a4a9)) * Implement format strings in the comptime interpreter ([#5596](https://github.com/noir-lang/noir/issues/5596)) ([fd7002c](https://github.com/noir-lang/noir/commit/fd7002caaf15c297227ce53047dd3361674a527d)) * Integrate new proving systems in e2e (https://github.com/AztecProtocol/aztec-packages/pull/6971) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Let filenames in errors be relative to the current dir if possible ([#5642](https://github.com/noir-lang/noir/issues/5642)) ([f656681](https://github.com/noir-lang/noir/commit/f656681dfccf01bac2811835fc9ab482e54e3da8)) * Let LSP work will with code generated by macros ([#5665](https://github.com/noir-lang/noir/issues/5665)) ([8122624](https://github.com/noir-lang/noir/commit/812262413770d2f20cba04eb0e3176320a3b704a)) * LSP closing brace hints ([#5686](https://github.com/noir-lang/noir/issues/5686)) ([2b18151](https://github.com/noir-lang/noir/commit/2b18151168b4fa0b1a4173b11f047ff2fc338d28)) * LSP hover now includes "Go to" links ([#5677](https://github.com/noir-lang/noir/issues/5677)) ([d466d49](https://github.com/noir-lang/noir/commit/d466d491ea50b495be7d5a45a8c3d85771f9b1c0)) * LSP inlay parameter hints ([#5553](https://github.com/noir-lang/noir/issues/5553)) ([822fe2c](https://github.com/noir-lang/noir/commit/822fe2ce38184243789a97f79ee412b9cef614e2)) * LSP inlay type hints on lambda parameters ([#5639](https://github.com/noir-lang/noir/issues/5639)) ([80128ff](https://github.com/noir-lang/noir/commit/80128ff0a5d54fc777ffef89a7acc27d347181e6)) * Make Brillig do integer arithmetic operations using u128 instead of Bigint (https://github.com/AztecProtocol/aztec-packages/pull/7518) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * **noir_js:** Expose UltraHonk and integration tests ([#5656](https://github.com/noir-lang/noir/issues/5656)) ([4552b4f](https://github.com/noir-lang/noir/commit/4552b4f357f023a9d054a34b3dc94d7a659c7d09)) * Remove 'comptime or separate crate' restriction on comptime code ([#5609](https://github.com/noir-lang/noir/issues/5609)) ([1cddf42](https://github.com/noir-lang/noir/commit/1cddf427b7f52b3cb394c8c4c682cfd176d5eb93)) * Resolve arguments to attributes ([#5649](https://github.com/noir-lang/noir/issues/5649)) ([e139002](https://github.com/noir-lang/noir/commit/e1390020c5ffc9c252b47eeffb3219ffa20c4879)) * **ssa:** Simple serialization of unoptimized SSA to file ([#5679](https://github.com/noir-lang/noir/issues/5679)) ([07ea107](https://github.com/noir-lang/noir/commit/07ea1077cad8a332970d9d5f40a520009976a033)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7432) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7444) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7454) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7512) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7577) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7583) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Turbofish in struct pattern ([#5616](https://github.com/noir-lang/noir/issues/5616)) ([b3c408b](https://github.com/noir-lang/noir/commit/b3c408b62424c87f9be5b58c33be7d77e62af98e)) * Turbofish operator in struct constructor ([#5607](https://github.com/noir-lang/noir/issues/5607)) ([106abd7](https://github.com/noir-lang/noir/commit/106abd71299a54dc68eb6ff39a0a8135b3f8eb49)) * Turbofish operator on path segments ([#5603](https://github.com/noir-lang/noir/issues/5603)) ([0bb8372](https://github.com/noir-lang/noir/commit/0bb8372e118036a34709da37c26d11a539a86bb3)) * Typing return values of embedded_curve_ops (https://github.com/AztecProtocol/aztec-packages/pull/7413) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) ### Bug Fixes * 'cannot eval non-comptime global' error ([#5586](https://github.com/noir-lang/noir/issues/5586)) ([0a987c7](https://github.com/noir-lang/noir/commit/0a987c774e0349e2cdc17ad2aaee634c732b8785)) * `NoMatchingImplFound` in comptime code only ([#5617](https://github.com/noir-lang/noir/issues/5617)) ([28211a3](https://github.com/noir-lang/noir/commit/28211a397b810c661204b45b7da06f7cad345278)) * Add trailing extra arguments for backend in gates_flamegraph (https://github.com/AztecProtocol/aztec-packages/pull/7472) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Allow calling a trait method with paths that don't consist of exactly two segments ([#5577](https://github.com/noir-lang/noir/issues/5577)) ([88c0a40](https://github.com/noir-lang/noir/commit/88c0a40ea35c7a64e4361e3022286be6fa7da666)) * Allow trailing comma when parsing where clauses ([#5594](https://github.com/noir-lang/noir/issues/5594)) ([75bfe13](https://github.com/noir-lang/noir/commit/75bfe134457788f912da5173c395d7fbe0bb731a)) * Allow using Self for function calls ([#5629](https://github.com/noir-lang/noir/issues/5629)) ([b7e4f42](https://github.com/noir-lang/noir/commit/b7e4f424f3fc461122447c30989a3ce52ddea09d)) * Correct span for prefix operator ([#5624](https://github.com/noir-lang/noir/issues/5624)) ([5824785](https://github.com/noir-lang/noir/commit/58247854fba4309991529317671280bccd5cf21f)) * Correctly track sources for open LSP documents ([#5561](https://github.com/noir-lang/noir/issues/5561)) ([9e61e97](https://github.com/noir-lang/noir/commit/9e61e97a6cc5aecaf673742f4b333879eeb687d0)) * Derive generic types ([#5674](https://github.com/noir-lang/noir/issues/5674)) ([19e58a9](https://github.com/noir-lang/noir/commit/19e58a91a3b1d0534d8b0198347e3a2fb5488599)) * Don't panic when a macro fails to resolve ([#5537](https://github.com/noir-lang/noir/issues/5537)) ([6109ddc](https://github.com/noir-lang/noir/commit/6109ddc4a12a4f7593c87fcc42a059737febd470)) * Elaborate struct & trait annotations in the correct module ([#5643](https://github.com/noir-lang/noir/issues/5643)) ([d0a957b](https://github.com/noir-lang/noir/commit/d0a957ba9bd743ae00959b0680e275a0a3992308)) * Error on duplicate struct field ([#5585](https://github.com/noir-lang/noir/issues/5585)) ([3aed671](https://github.com/noir-lang/noir/commit/3aed671d2fdca661fdef160b3e2468ce10eda028)) * Error on incorrect generic count for impl and type alias ([#5623](https://github.com/noir-lang/noir/issues/5623)) ([1f5d000](https://github.com/noir-lang/noir/commit/1f5d0007430cd5cf057ce61ebc87304bb8cb557c)) * Error on trait impl generics count mismatch ([#5582](https://github.com/noir-lang/noir/issues/5582)) ([da3d607](https://github.com/noir-lang/noir/commit/da3d607fb30143f7fd4077765119f98e664f31f7)) * Error on unbound generics in structs ([#5619](https://github.com/noir-lang/noir/issues/5619)) ([efef6b4](https://github.com/noir-lang/noir/commit/efef6b4c9f2ff4bce7e83bed004eb05332ac349f)) * Filter comptime globals ([#5538](https://github.com/noir-lang/noir/issues/5538)) ([2adc6ac](https://github.com/noir-lang/noir/commit/2adc6ac372b41ab7f9e803311d3d733b1a5ca4fb)) * Fix `uhashmap` test name ([#5563](https://github.com/noir-lang/noir/issues/5563)) ([d5de83f](https://github.com/noir-lang/noir/commit/d5de83f7fefe014c5e5d9c3d82ab6aff6fd3217c)) * Fix occurs check ([#5535](https://github.com/noir-lang/noir/issues/5535)) ([51dd529](https://github.com/noir-lang/noir/commit/51dd529872da96ad7f7770d6bc5f7c23f5415b5a)) * Fix where clause issue in items generated from attributes ([#5673](https://github.com/noir-lang/noir/issues/5673)) ([9a8cfc9](https://github.com/noir-lang/noir/commit/9a8cfc9cfbf1861ca2b6563030b315bfcfbab130)) * **frontend:** Disallow signed numeric generics ([#5572](https://github.com/noir-lang/noir/issues/5572)) ([2b4853e](https://github.com/noir-lang/noir/commit/2b4853e71859f225acc123160e87c522212b16b5)) * **frontend:** Error for when impl is stricter than trait ([#5343](https://github.com/noir-lang/noir/issues/5343)) ([ece033f](https://github.com/noir-lang/noir/commit/ece033fcbf90ffbea992b4519d40076bf573b7af)) * **frontend:** Restrict numeric generic types to unsigned ints up to `u32` ([#5581](https://github.com/noir-lang/noir/issues/5581)) ([b85e764](https://github.com/noir-lang/noir/commit/b85e764c2156ebb68acb7fba68e63856f9d1235b)) * Let a trait impl that relies on another trait work ([#5646](https://github.com/noir-lang/noir/issues/5646)) ([e00c370](https://github.com/noir-lang/noir/commit/e00c3705794657ea8f8faa16bc2325511567e185)) * Let std::unsafe::zeroed() work for slices ([#5592](https://github.com/noir-lang/noir/issues/5592)) ([7daee20](https://github.com/noir-lang/noir/commit/7daee20a3c3628044e2e76b0a52abd5285a4432a)) * Let trait calls work in globals ([#5602](https://github.com/noir-lang/noir/issues/5602)) ([c02a6f6](https://github.com/noir-lang/noir/commit/c02a6f64b1920ec5a1a05e20df34227cc95d7b0a)) * Let unary traits work at comptime ([#5507](https://github.com/noir-lang/noir/issues/5507)) ([aa62d8a](https://github.com/noir-lang/noir/commit/aa62d8adce7ca2a4e021c8ec18b6056a7600fe95)) * Lookup trait constraints methods in composite types ([#5595](https://github.com/noir-lang/noir/issues/5595)) ([cec6390](https://github.com/noir-lang/noir/commit/cec63902c52710ba7df433eda310296f7b7652d2)) * Parse block and if statements independently of expressions in statements ([#5634](https://github.com/noir-lang/noir/issues/5634)) ([9341113](https://github.com/noir-lang/noir/commit/9341113840294d6d895d5ed9713ba551cf8a1db9)) * Revert "feat: Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7512)" (https://github.com/AztecProtocol/aztec-packages/pull/7558) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Run macros within comptime contexts ([#5576](https://github.com/noir-lang/noir/issues/5576)) ([df44919](https://github.com/noir-lang/noir/commit/df449191a4edf669e1d3412789422177c54a9304)) * Speed up LSP ([#5650](https://github.com/noir-lang/noir/issues/5650)) ([e5f1b36](https://github.com/noir-lang/noir/commit/e5f1b368c8894b3e37209b22c48fde8c82851cba)) * **ssa:** More robust array deduplication check ([#5547](https://github.com/noir-lang/noir/issues/5547)) ([dd89b90](https://github.com/noir-lang/noir/commit/dd89b900dfabbea889f6f181aa562e73a87215b7)) * Switch verify proof to arrays ([#5664](https://github.com/noir-lang/noir/issues/5664)) ([c1ed9fb](https://github.com/noir-lang/noir/commit/c1ed9fb3f6e6778b519685fe218178b52c12076f)) * Type_of for pointer types ([#5536](https://github.com/noir-lang/noir/issues/5536)) ([edb3810](https://github.com/noir-lang/noir/commit/edb3810c6863e3c7802fcaece82eb6de21ebd71f)) * Workaround from_slice with nested slices ([#5648](https://github.com/noir-lang/noir/issues/5648)) ([6310a55](https://github.com/noir-lang/noir/commit/6310a55163ba3ce84e50a6df68d8963cd5222bd9)) </details> <details><summary>0.49.0</summary> ## [0.49.0](https://github.com/noir-lang/noir/compare/v0.48.0...v0.49.0) (2024-08-06) ### ⚠ BREAKING CHANGES * constant inputs for blackbox (https://github.com/AztecProtocol/aztec-packages/pull/7222) * add session id to foreign call RPC requests ([#5205](https://github.com/noir-lang/noir/issues/5205)) * restrict noir word size to u32 ([#5180](https://github.com/noir-lang/noir/issues/5180)) * switch `bb` over to read ACIR from nargo artifacts (https://github.com/AztecProtocol/aztec-packages/pull/6283) * specify databus arrays for BB (https://github.com/AztecProtocol/aztec-packages/pull/6239) * remove `Opcode::Brillig` from ACIR (https://github.com/AztecProtocol/aztec-packages/pull/5995) * AES blackbox (https://github.com/AztecProtocol/aztec-packages/pull/6016) * Bit shift is restricted to u8 right operand ([#4907](https://github.com/noir-lang/noir/issues/4907)) * contract interfaces and better function calls (https://github.com/AztecProtocol/aztec-packages/pull/5687) * change backend width to 4 (https://github.com/AztecProtocol/aztec-packages/pull/5374) * Use fixed size arrays in black box functions where sizes are known (https://github.com/AztecProtocol/aztec-packages/pull/5620) * trap with revert data (https://github.com/AztecProtocol/aztec-packages/pull/5732) * **acir:** BrilligCall opcode (https://github.com/AztecProtocol/aztec-packages/pull/5709) * remove fixed-length keccak256 (https://github.com/AztecProtocol/aztec-packages/pull/5617) * storage_layout and `#[aztec(storage)]` (https://github.com/AztecProtocol/aztec-packages/pull/5387) * **acir:** Add predicate to call opcode (https://github.com/AztecProtocol/aztec-packages/pull/5616) * contract_abi-exports (https://github.com/AztecProtocol/aztec-packages/pull/5386) * Brillig typed memory (https://github.com/AztecProtocol/aztec-packages/pull/5395) ### Features * `multi_scalar_mul` blackbox func (https://github.com/AztecProtocol/aztec-packages/pull/6097) ([73a635e](https://github.com/noir-lang/noir/commit/73a635e5086cf3407f9846ce39807cd15b4e485a)) * `variable_base_scalar_mul` blackbox func (https://github.com/AztecProtocol/aztec-packages/pull/6039) ([73a635e](https://github.com/noir-lang/noir/commit/73a635e5086cf3407f9846ce39807cd15b4e485a)) * **acir_gen:** Brillig stdlib ([#4848](https://github.com/noir-lang/noir/issues/4848)) ([0c8175c](https://github.com/noir-lang/noir/commit/0c8175cb539efd9427c73ae5af0d48abe688ebab)) * **acir_gen:** Fold attribute at compile-time and initial non inlined ACIR (https://github.com/AztecProtocol/aztec-packages/pull/5341) ([a0f7474](https://github.com/noir-lang/noir/commit/a0f7474ae6bd74132efdb945d2eb2383f3913cce)) * **acir_gen:** Width aware ACIR gen addition ([#5493](https://github.com/noir-lang/noir/issues/5493)) ([85fa592](https://github.com/noir-lang/noir/commit/85fa592fdef3b8589ce03b232e1b51565837b540)) * **acir:** Add predicate to call opcode (https://github.com/AztecProtocol/aztec-packages/pull/5616) ([2bd006a](https://github.com/noir-lang/noir/commit/2bd006ae07499e8702b0fa9565855f0a5ef1a589)) * **acir:** BrilligCall opcode (https://github.com/AztecProtocol/aztec-packages/pull/5709) ([0f9ae0a](https://github.com/noir-lang/noir/commit/0f9ae0ac1d68714b56ba4524aedcc67212494f1b)) * Activate return_data in ACIR opcodes ([#5080](https://github.com/noir-lang/noir/issues/5080)) ([c9fda3c](https://github.com/noir-lang/noir/commit/c9fda3c7fd4575bfe7d457e8d4230e071f0129a0)) * **acvm_js:** Execute program ([#4694](https://github.com/noir-lang/noir/issues/4694)) ([386f6d0](https://github.com/noir-lang/noir/commit/386f6d0a5822912db878285cb001032a7c0ff622)) * **acvm:** Execute multiple circuits (https://github.com/AztecProtocol/aztec-packages/pull/5380) ([a0f7474](https://github.com/noir-lang/noir/commit/a0f7474ae6bd74132efdb945d2eb2383f3913cce)) * Add native rust implementation of schnorr signature verification ([#5053](https://github.com/noir-lang/noir/issues/5053)) ([fab1c35](https://github.com/noir-lang/noir/commit/fab1c3567d731ea7902635a7a020a8d14f94fd27)) * Add native rust implementations of pedersen functions ([#4871](https://github.com/noir-lang/noir/issues/4871)) ([fb039f7](https://github.com/noir-lang/noir/commit/fb039f74df23aea39bc0593a5d538d82b4efadf0)) * Add return values to aztec fns (https://github.com/AztecProtocol/aztec-packages/pull/5389) ([2bd006a](https://github.com/noir-lang/noir/commit/2bd006ae07499e8702b0fa9565855f0a5ef1a589)) * Add session id to foreign call RPC requests ([#5205](https://github.com/noir-lang/noir/issues/5205)) ([14adafc](https://github.com/noir-lang/noir/commit/14adafc965fa9c833e096ec037e086aae67703ad)) * AES blackbox (https://github.com/AztecProtocol/aztec-packages/pull/6016) ([73a635e](https://github.com/noir-lang/noir/commit/73a635e5086cf3407f9846ce39807cd15b4e485a)) * **avm:** Integrate AVM with initializers (https://github.com/AztecProtocol/aztec-packages/pull/5469) ([2bd006a](https://github.com/noir-lang/noir/commit/2bd006ae07499e8702b0fa9565855f0a5ef1a589)) * Avoid heap allocs when going to/from field (https://github.com/AztecProtocol/aztec-packages/pull/7547) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Bit shift is restricted to u8 right operand ([#4907](https://github.com/noir-lang/noir/issues/4907)) ([c4b0369](https://github.com/noir-lang/noir/commit/c4b03691feca17ef268acab523292f3051f672ea)) * Brillig heterogeneous memory cells (https://github.com/AztecProtocol/aztec-packages/pull/5608) ([305bcdc](https://github.com/noir-lang/noir/commit/305bcdcbd01cb84dbaac900f14cb6cf867f83bda)) * Brillig pointer codegen and execution (https://github.com/AztecProtocol/aztec-packages/pull/5737) ([0f9ae0a](https://github.com/noir-lang/noir/commit/0f9ae0ac1d68714b56ba4524aedcc67212494f1b)) * Brillig typed memory (https://github.com/AztecProtocol/aztec-packages/pull/5395) ([0bc18c4](https://github.com/noir-lang/noir/commit/0bc18c4f78171590dd58bded959f68f53a44cc8c)) * Change backend width to 4 (https://github.com/AztecProtocol/aztec-packages/pull/5374) ([0f9ae0a](https://github.com/noir-lang/noir/commit/0f9ae0ac1d68714b56ba4524aedcc67212494f1b)) * Constant inputs for blackbox (https://github.com/AztecProtocol/aztec-packages/pull/7222) ([fb97bb9](https://github.com/noir-lang/noir/commit/fb97bb9b795c9d7af395b82fd6f0ea8111d59c11)) * Contract interfaces and better function calls (https://github.com/AztecProtocol/aztec-packages/pull/5687) ([0f9ae0a](https://github.com/noir-lang/noir/commit/0f9ae0ac1d68714b56ba4524aedcc67212494f1b)) * Contract_abi-exports (https://github.com/AztecProtocol/aztec-packages/pull/5386) ([2bd006a](https://github.com/noir-lang/noir/commit/2bd006ae07499e8702b0fa9565855f0a5ef1a589)) * Dynamic assertion payloads v2 (https://github.com/AztecProtocol/aztec-packages/pull/5949) ([73a635e](https://github.com/noir-lang/noir/commit/73a635e5086cf3407f9846ce39807cd15b4e485a)) * Handle `BrilligCall` opcodes in the debugger ([#4897](https://github.com/noir-lang/noir/issues/4897)) ([b380dc4](https://github.com/noir-lang/noir/commit/b380dc44de5c9f8de278ece3d531ebbc2c9238ba)) * Impl of missing functionality in new key store (https://github.com/AztecProtocol/aztec-packages/pull/5750) ([0f9ae0a](https://github.com/noir-lang/noir/commit/0f9ae0ac1d68714b56ba4524aedcc67212494f1b)) * Increase default expression width to 4 ([#4995](https://github.com/noir-lang/noir/issues/4995)) ([f01d309](https://github.com/noir-lang/noir/commit/f01d3090759a5ff0f1f83c5616d22890c6bd76be)) * Integrate new proving systems in e2e (https://github.com/AztecProtocol/aztec-packages/pull/6971) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Make ACVM generic across fields ([#5114](https://github.com/noir-lang/noir/issues/5114)) ([70f374c](https://github.com/noir-lang/noir/commit/70f374c06642962d8f2b95b80f8c938fcf7761d7)) * Make Brillig do integer arithmetic operations using u128 instead of Bigint (https://github.com/AztecProtocol/aztec-packages/pull/7518) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Move abi demonomorphizer to noir_codegen and use noir_codegen in protocol types (https://github.com/AztecProtocol/aztec-packages/pull/6302) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * Move to_radix to a blackbox (https://github.com/AztecProtocol/aztec-packages/pull/6294) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * **nargo:** Handle call stacks for multiple Acir calls ([#4711](https://github.com/noir-lang/noir/issues/4711)) ([5b23171](https://github.com/noir-lang/noir/commit/5b231714740447d82cde7cdbe65d4a8b46a31df4)) * **nargo:** Hidden option to show contract artifact paths written by `nargo compile` (https://github.com/AztecProtocol/aztec-packages/pull/6131) ([ff67e14](https://github.com/noir-lang/noir/commit/ff67e145d086bf6fdf58fb5e57927033e52e03d3)) * Parsing non-string assertion payloads in noir js (https://github.com/AztecProtocol/aztec-packages/pull/6079) ([73a635e](https://github.com/noir-lang/noir/commit/73a635e5086cf3407f9846ce39807cd15b4e485a)) * Private Kernel Recursion (https://github.com/AztecProtocol/aztec-packages/pull/6278) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * Proper padding in ts AES and constrained AES in body and header computations (https://github.com/AztecProtocol/aztec-packages/pull/6269) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * Remove conditional compilation of `bn254_blackbox_solver` ([#5058](https://github.com/noir-lang/noir/issues/5058)) ([9420d7c](https://github.com/noir-lang/noir/commit/9420d7c2ba6bbbf5ecb9a066837c505310955b6c)) * Remove external blackbox solver from acir simulator (https://github.com/AztecProtocol/aztec-packages/pull/6586) ([a40a9a5](https://github.com/noir-lang/noir/commit/a40a9a55571deed386688fb84260bdf2794d4d38)) * Restore hashing args via slice for performance (https://github.com/AztecProtocol/aztec-packages/pull/5539) ([2bd006a](https://github.com/noir-lang/noir/commit/2bd006ae07499e8702b0fa9565855f0a5ef1a589)) * Restrict noir word size to u32 ([#5180](https://github.com/noir-lang/noir/issues/5180)) ([bdb2bc6](https://github.com/noir-lang/noir/commit/bdb2bc608ea8fd52d46545a38b68dd2558b28110)) * Separate runtimes of SSA functions before inlining ([#5121](https://github.com/noir-lang/noir/issues/5121)) ([69eca9b](https://github.com/noir-lang/noir/commit/69eca9b8671fa54192bef814dd584fdb5387a5f7)) * Set aztec private functions to be recursive (https://github.com/AztecProtocol/aztec-packages/pull/6192) ([73a635e](https://github.com/noir-lang/noir/commit/73a635e5086cf3407f9846ce39807cd15b4e485a)) * **simulator:** Fetch return values at circuit execution (https://github.com/AztecProtocol/aztec-packages/pull/5642) ([305bcdc](https://github.com/noir-lang/noir/commit/305bcdcbd01cb84dbaac900f14cb6cf867f83bda)) * Specify databus arrays for BB (https://github.com/AztecProtocol/aztec-packages/pull/6239) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * Storage_layout and `#[aztec(storage)]` (https://github.com/AztecProtocol/aztec-packages/pull/5387) ([2bd006a](https://github.com/noir-lang/noir/commit/2bd006ae07499e8702b0fa9565855f0a5ef1a589)) * Switch `bb` over to read ACIR from nargo artifacts (https://github.com/AztecProtocol/aztec-packages/pull/6283) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/5572) ([2bd006a](https://github.com/noir-lang/noir/commit/2bd006ae07499e8702b0fa9565855f0a5ef1a589)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/5619) ([2bd006a](https://github.com/noir-lang/noir/commit/2bd006ae07499e8702b0fa9565855f0a5ef1a589)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/5697) ([305bcdc](https://github.com/noir-lang/noir/commit/305bcdcbd01cb84dbaac900f14cb6cf867f83bda)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/5794) ([0f9ae0a](https://github.com/noir-lang/noir/commit/0f9ae0ac1d68714b56ba4524aedcc67212494f1b)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/5814) ([0f9ae0a](https://github.com/noir-lang/noir/commit/0f9ae0ac1d68714b56ba4524aedcc67212494f1b)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/5935) ([1b867b1](https://github.com/noir-lang/noir/commit/1b867b121fba5db3087ca845b4934e6732b23fd1)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/5955) ([1b867b1](https://github.com/noir-lang/noir/commit/1b867b121fba5db3087ca845b4934e6732b23fd1)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/5999) ([1b867b1](https://github.com/noir-lang/noir/commit/1b867b121fba5db3087ca845b4934e6732b23fd1)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/6280) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/6332) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/6573) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7392) ([fb97bb9](https://github.com/noir-lang/noir/commit/fb97bb9b795c9d7af395b82fd6f0ea8111d59c11)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7400) ([fb97bb9](https://github.com/noir-lang/noir/commit/fb97bb9b795c9d7af395b82fd6f0ea8111d59c11)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7432) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7444) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7454) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7512) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7577) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7583) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * ToRadix BB + avm transpiler support (https://github.com/AztecProtocol/aztec-packages/pull/6330) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * Trap with revert data (https://github.com/AztecProtocol/aztec-packages/pull/5732) ([0f9ae0a](https://github.com/noir-lang/noir/commit/0f9ae0ac1d68714b56ba4524aedcc67212494f1b)) * Typing return values of embedded_curve_ops (https://github.com/AztecProtocol/aztec-packages/pull/7413) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Use fixed size arrays in black box functions where sizes are known (https://github.com/AztecProtocol/aztec-packages/pull/5620) ([0f9ae0a](https://github.com/noir-lang/noir/commit/0f9ae0ac1d68714b56ba4524aedcc67212494f1b)) * Variable length returns (https://github.com/AztecProtocol/aztec-packages/pull/5633) ([305bcdc](https://github.com/noir-lang/noir/commit/305bcdcbd01cb84dbaac900f14cb6cf867f83bda)) ### Bug Fixes * **acvm:** Mark outputs of Opcode::Call solvable ([#4708](https://github.com/noir-lang/noir/issues/4708)) ([8fea405](https://github.com/noir-lang/noir/commit/8fea40576f262bd5bb588923c0660d8967404e56)) * Add support for nested arrays returned by oracles ([#5132](https://github.com/noir-lang/noir/issues/5132)) ([f846879](https://github.com/noir-lang/noir/commit/f846879dd038328bd0a1d39a72b448ef52a1002b)) * Add trailing extra arguments for backend in gates_flamegraph (https://github.com/AztecProtocol/aztec-packages/pull/7472) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Avoid huge unrolling in hash_args (https://github.com/AztecProtocol/aztec-packages/pull/5703) ([305bcdc](https://github.com/noir-lang/noir/commit/305bcdcbd01cb84dbaac900f14cb6cf867f83bda)) * Avoid unnecessarily splitting expressions with multiplication terms with a shared term ([#5291](https://github.com/noir-lang/noir/issues/5291)) ([19884f1](https://github.com/noir-lang/noir/commit/19884f161dfc7d7ce75dd2c404b8ef39cdad2240)) * Catch panics from EC point creation (e.g. the point is at infinity) ([#4790](https://github.com/noir-lang/noir/issues/4790)) ([645dba1](https://github.com/noir-lang/noir/commit/645dba192f16ef34018828186ffb297422a8dc73)) * Check for public args in aztec functions (https://github.com/AztecProtocol/aztec-packages/pull/6355) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) * Don't reuse brillig with slice arguments (https://github.com/AztecProtocol/aztec-packages/pull/5800) ([0f9ae0a](https://github.com/noir-lang/noir/commit/0f9ae0ac1d68714b56ba4524aedcc67212494f1b)) * Handle struct with nested arrays in oracle return values ([#5244](https://github.com/noir-lang/noir/issues/5244)) ([a30814f](https://github.com/noir-lang/noir/commit/a30814f1f767bf874cd7e2969f5061c68f16b9a7)) * Issue 4682 and add solver for unconstrained bigintegers ([#4729](https://github.com/noir-lang/noir/issues/4729)) ([e4d33c1](https://github.com/noir-lang/noir/commit/e4d33c126a2795d9aaa6048d4e91b64cb4bbe4f2)) * Move BigInt modulus checks to runtime in brillig ([#5374](https://github.com/noir-lang/noir/issues/5374)) ([741d339](https://github.com/noir-lang/noir/commit/741d33991f8e2918bf092c354ca56047e0274533)) * Proper field inversion for bigints ([#4802](https://github.com/noir-lang/noir/issues/4802)) ([b46d0e3](https://github.com/noir-lang/noir/commit/b46d0e39f4252f8bbaa987f88d112e4c233b3d61)) * Revert "feat: Sync from noir (https://github.com/AztecProtocol/aztec-packages/pull/7512)" (https://github.com/AztecProtocol/aztec-packages/pull/7558) ([daad75c](https://github.com/noir-lang/noir/commit/daad75c26d19ae707b90a7424b77dab9937e8575)) * Runtime brillig bigint id assignment ([#5369](https://github.com/noir-lang/noir/issues/5369)) ([a8928dd](https://github.com/noir-lang/noir/commit/a8928ddcffcae15babf7aa5aff0e462e4549552e)) * Temporarily revert to_radix blackbox (https://github.com/AztecProtocol/aztec-packages/pull/6304) ([436bbda](https://github.com/noir-lang/noir/commit/436bbdaadb2a294b94f93e53d7d3cad3859c7e46)) ### Miscellaneous Chores * Remove `Opcode::Brillig` from ACIR (https://github.com/AztecProtocol/aztec-packages/pull/5995) ([73a635e](https://github.com/noir-lang/noir/commit/73a635e5086cf3407f9846ce39807cd15b4e485a)) * Remove fixed-length keccak256 (https://github.com/AztecProtocol/aztec-packages/pull/5617) ([305bcdc](https://github.com/noir-lang/noir/commit/305bcdcbd01cb84dbaac900f14cb6cf867f83bda)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: kevaundray <[email protected]>
nightly-2024-07-30: chore(github): Switch to organization-wide Issue templates (#5622)
Pre-release
# Description ## Summary\* Following https://github.com/noir-lang/.github/pull/29, we can now pull directly from the organization-wide Issue templates and simplify templates to maintain. This PR deletes the repo-specific Issue templates, so GitHub would then automatically pull the org-wide templates. ## Documentation\* Check one: - [x] No documentation needed. - [ ] Documentation included in this PR. - [ ] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist\* - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings. Preview the templates: https://github.com/noir-lang-test/noir/issues/new/choose
nightly-2024-07-29: feat: Remove 'comptime or separate crate' restriction on comptime cod…
nightly-2024-07-29: feat: Remove 'comptime or separate crate' restriction on comptime cod…
Pre-release
Pre-release
…e (#5609) # Description ## Problem\* Resolves <none, this is a bonus> ## Summary\* Removes the restriction that comptime code can only call into other comptime code or code in a separate crate. This is possible now that functions can be lazily resolved in the interpreter. This means we no longer need hacky solutions like "comptime impl" on trait impls. `comptime` itself also gets simplified from its previous two meanings of "run this at comptime" and "make this visible to other comptime code" to just "run this at comptime." ## Additional Context I've also snuck in a sneaky ordering change where we run annotations on traits before annotations on structs. Function annotations are still run last. ## Documentation\* Check one: - [ ] No documentation needed. - [ ] Documentation included in this PR. - [x] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist\* - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings.
nightly-2024-07-28: feat: Remove 'comptime or separate crate' restriction on comptime cod…
nightly-2024-07-28: feat: Remove 'comptime or separate crate' restriction on comptime cod…
Pre-release
Pre-release
…e (#5609) # Description ## Problem\* Resolves <none, this is a bonus> ## Summary\* Removes the restriction that comptime code can only call into other comptime code or code in a separate crate. This is possible now that functions can be lazily resolved in the interpreter. This means we no longer need hacky solutions like "comptime impl" on trait impls. `comptime` itself also gets simplified from its previous two meanings of "run this at comptime" and "make this visible to other comptime code" to just "run this at comptime." ## Additional Context I've also snuck in a sneaky ordering change where we run annotations on traits before annotations on structs. Function annotations are still run last. ## Documentation\* Check one: - [ ] No documentation needed. - [ ] Documentation included in this PR. - [x] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist\* - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings.
nightly-2024-07-27: feat: Remove 'comptime or separate crate' restriction on comptime cod…
nightly-2024-07-27: feat: Remove 'comptime or separate crate' restriction on comptime cod…
Pre-release
Pre-release
…e (#5609) # Description ## Problem\* Resolves <none, this is a bonus> ## Summary\* Removes the restriction that comptime code can only call into other comptime code or code in a separate crate. This is possible now that functions can be lazily resolved in the interpreter. This means we no longer need hacky solutions like "comptime impl" on trait impls. `comptime` itself also gets simplified from its previous two meanings of "run this at comptime" and "make this visible to other comptime code" to just "run this at comptime." ## Additional Context I've also snuck in a sneaky ordering change where we run annotations on traits before annotations on structs. Function annotations are still run last. ## Documentation\* Check one: - [ ] No documentation needed. - [ ] Documentation included in this PR. - [x] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist\* - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings.
nightly-2024-07-26: feat: turbofish operator on path segments (#5603)
# Description ## Problem Part of #5584 ## Summary This PR adds support for parsing turbofishes in any path segments. Turbofish is only still checked when elaborating variables, but only for the last turbofish (like before). For now any other placement of a turbofish will give a type error, but at least they can be parsed now. In later PRs we can make them work in the middle of variables, in constructors, etc. ## Additional Context Right now turbofishes aren't parsed in named typed (for example in a struct pattern). The reason is that if I use `path()` instead of `path_no_turbofish()` then the parser gives a stack overflow and I'm not sure why. Maybe it's because `parse_type()` is used recursively, I'm not sure... but these stack overflow errors are kind of hard to diagnose. In any case we can parse those later on once we decide to support turbofish in struct patterns. Also, because a `Path`'s segments changed from `Vec<Ident>` to `Vec<PathSegment>` some functions, like `Path::last_segment()` made more sense if they returned `PathSegment` instead of `Ident`. Then I introduced a bunch of helper functions to reduce some call chains, but also introduced helpers like `last_name()` which is nice because it returns a `&str` where in some cases an unnecessary clone was made (so some refactors/cleanups are included in this PR as part of this feature). ## Documentation\* Check one: - [ ] No documentation needed. - [ ] Documentation included in this PR. - [x] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist\* - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings.