|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## [1.0.0-beta.22](https://github.com/noir-lang/noir/compare/v1.0.0-beta.21...v1.0.0-beta.22) (2026-05-21) |
| 4 | + |
| 5 | + |
| 6 | +### ⚠ BREAKING CHANGES |
| 7 | + |
| 8 | +* allow UTF-8 in comments ([#12699](https://github.com/noir-lang/noir/issues/12699)) |
| 9 | +* remove Expr::modify ([#12653](https://github.com/noir-lang/noir/issues/12653)) |
| 10 | +* remove bytes32_to_field from stdlib ([#12619](https://github.com/noir-lang/noir/issues/12619)) |
| 11 | + |
| 12 | +### Features |
| 13 | + |
| 14 | +* Allow referencing types generated at comptime in function signatures ([#12602](https://github.com/noir-lang/noir/issues/12602)) ([4e25c46](https://github.com/noir-lang/noir/commit/4e25c46c2f395fd44356426c9eac711f78ad30cd)) |
| 15 | +* Allow UTF-8 in comments ([#12699](https://github.com/noir-lang/noir/issues/12699)) ([93bb72f](https://github.com/noir-lang/noir/commit/93bb72f87af3db12718577cf908961331a46e691)) |
| 16 | +* **comptime:** Add `Location` type, `location` methods, and `error` and `warn` functions ([#12426](https://github.com/noir-lang/noir/issues/12426)) ([9907bda](https://github.com/noir-lang/noir/commit/9907bdad5d1def2e90801635f5e5a20642ded336)) |
| 17 | +* **diagnostics:** Improve missing ':' error ([#12743](https://github.com/noir-lang/noir/issues/12743)) ([63680ec](https://github.com/noir-lang/noir/commit/63680ec30ee6e39c5772ef8147ef1daefb1e3c1d)) |
| 18 | +* Display comptime Location as Location("filename:line:col") ([#12668](https://github.com/noir-lang/noir/issues/12668)) ([ec0d383](https://github.com/noir-lang/noir/commit/ec0d3830051dd808ed58473cc01e2596abb4b86d)) |
| 19 | +* **fmt:** Format quote blocks ([#12656](https://github.com/noir-lang/noir/issues/12656)) ([8ffd2c4](https://github.com/noir-lang/noir/commit/8ffd2c4cf9548f075b06f58646f734b4c1c477d8)) |
| 20 | +* Introduce #[pure] attribute for oracles ([#12517](https://github.com/noir-lang/noir/issues/12517)) ([9bb8c52](https://github.com/noir-lang/noir/commit/9bb8c520bc15e2b20dfbfc5545fe5ef03033aeb7)) |
| 21 | +* **ssa:** Validate jmpif edge arguments against destination block parameters ([#12669](https://github.com/noir-lang/noir/issues/12669)) ([0d2fbd1](https://github.com/noir-lang/noir/commit/0d2fbd1c722ca607666d94dd4755e75a5dab3e35)) |
| 22 | + |
| 23 | + |
| 24 | +### Bug Fixes |
| 25 | + |
| 26 | +* A couple of UHashMap fixes ([#12457](https://github.com/noir-lang/noir/issues/12457)) ([538683b](https://github.com/noir-lang/noir/commit/538683bf0ac73eef7a917d6dfce2c1b3b2cec4fa)) |
| 27 | +* Add impl bindings to monomorphization definition key ([#12725](https://github.com/noir-lang/noir/issues/12725)) ([fb8c60e](https://github.com/noir-lang/noir/commit/fb8c60e4310a9e140d74bab35e9b5155a1f6b5cd)) |
| 28 | +* Add side-effect check to is_oracle_wrapper ([#12703](https://github.com/noir-lang/noir/issues/12703)) ([69c05fa](https://github.com/noir-lang/noir/commit/69c05fa65032dcac9afa3147ca188612640f825b)) |
| 29 | +* Allow referencing generated structs in struct fields, enum variants and globals ([#12687](https://github.com/noir-lang/noir/issues/12687)) ([9b2eab6](https://github.com/noir-lang/noir/commit/9b2eab6c054622cfb2d807aa7bcf37759bb5eec1)) |
| 30 | +* Avoid hashing instructions to detect whether they changed ([#12742](https://github.com/noir-lang/noir/issues/12742)) ([9776636](https://github.com/noir-lang/noir/commit/9776636865552f5d25a9a81112ca8e7b4e624d12)) |
| 31 | +* Change error exprs to return SkippedDueToEarlierErrors ([#12686](https://github.com/noir-lang/noir/issues/12686)) ([9dfec15](https://github.com/noir-lang/noir/commit/9dfec15dd6ad0a43f25b3f3496703f0f8b6286b1)) |
| 32 | +* **ci:** Strip ANSI escapes in extract-fuzz-seeds.sh ([#12683](https://github.com/noir-lang/noir/issues/12683)) ([3306222](https://github.com/noir-lang/noir/commit/33062228d217ee2d05a29bb18b588760a47d9b1e)) |
| 33 | +* Correct error span for unused numeric type alias ([#12603](https://github.com/noir-lang/noir/issues/12603)) ([2c4f1e5](https://github.com/noir-lang/noir/commit/2c4f1e542002e9711738a94e6b758966a4eb0053)) |
| 34 | +* **coverage:** Avoid duplicate impl method names ([#12622](https://github.com/noir-lang/noir/issues/12622)) ([3f5e2e7](https://github.com/noir-lang/noir/commit/3f5e2e767ffe55624ffe32cd2f2c32b8e9989f2d)) |
| 35 | +* **coverage:** Include impl trait generics in name ([#12644](https://github.com/noir-lang/noir/issues/12644)) ([c70e0b4](https://github.com/noir-lang/noir/commit/c70e0b424ceb07aeee02a3ad51a216d1e2b0e71b)) |
| 36 | +* **docs:** Preserve first-line indent in #include_code snippets ([#12655](https://github.com/noir-lang/noir/issues/12655)) ([32b539f](https://github.com/noir-lang/noir/commit/32b539ff346ff1d5292f911671d7b055943c4e5f)) |
| 37 | +* Drop noirc_span dep from acir to unblock publish ([#12587](https://github.com/noir-lang/noir/issues/12587)) ([aaca1e0](https://github.com/noir-lang/noir/commit/aaca1e0b853cc8e7556dc51ea3cf6a33a7e5db2f)) |
| 38 | +* Elaborate op-assign RHS before LHS ([#12682](https://github.com/noir-lang/noir/issues/12682)) ([f6a584c](https://github.com/noir-lang/noir/commit/f6a584c410f78f4d9c53c830dabbf730d3f8c939)) |
| 39 | +* **elaborator:** Detect cyclic type aliases to prevent stack overflow ([#12633](https://github.com/noir-lang/noir/issues/12633)) ([c7a3bec](https://github.com/noir-lang/noir/commit/c7a3bec082b671950aa2eee917c451645e30a45f)) |
| 40 | +* **elaborator:** Simplify re-borrowing expressions ([#12599](https://github.com/noir-lang/noir/issues/12599)) ([f08f27b](https://github.com/noir-lang/noir/commit/f08f27b3763c0a8a015ade50ce04a596b91f1ac2)) |
| 41 | +* Fix ICE in find_by_path_suffix ([#12643](https://github.com/noir-lang/noir/issues/12643)) ([c0837a4](https://github.com/noir-lang/noir/commit/c0837a4d9c03b4db66df890e0bfc73066017478b)) |
| 42 | +* Follow self_type bindings when matching turbofish on type ([#12613](https://github.com/noir-lang/noir/issues/12613)) ([5123dc0](https://github.com/noir-lang/noir/commit/5123dc0601b6c9aea9d42dad5ee19806c68fc7db)) |
| 43 | +* **frontend:** Snapshot+restore call expr bindings around trait-item monomorphization ([#12579](https://github.com/noir-lang/noir/issues/12579)) ([884cef8](https://github.com/noir-lang/noir/commit/884cef89fdfcc5aafa56653042593cbb29dab772)) |
| 44 | +* Handle blocks inside references when finding last uses ([#12705](https://github.com/noir-lang/noir/issues/12705)) ([3b0ea26](https://github.com/noir-lang/noir/commit/3b0ea2630fcc42fb6265a6babb073cacb63f624f)) |
| 45 | +* Handle quoted values in desugar_generic_trait_bounds ([#12612](https://github.com/noir-lang/noir/issues/12612)) ([85e6954](https://github.com/noir-lang/noir/commit/85e6954dccdd931bde7b0d3db943f0a552f45fa3)) |
| 46 | +* Lazily define function metas ([#12585](https://github.com/noir-lang/noir/issues/12585)) ([e5caaf9](https://github.com/noir-lang/noir/commit/e5caaf923fd25671bacd93738dd84be3c857f336)) |
| 47 | +* Let `nargo interpret` validate inputs and output ([#12744](https://github.com/noir-lang/noir/issues/12744)) ([354282b](https://github.com/noir-lang/noir/commit/354282b2a1e2dc8b964a45f3870bce5e4b122bd0)) |
| 48 | +* **licm:** Insert `inc_rc` after hoisting `array_set` ([#12665](https://github.com/noir-lang/noir/issues/12665)) ([491cde7](https://github.com/noir-lang/noir/commit/491cde769d427c68592f160905f2e4d46d888c89)) |
| 49 | +* **lsp:** Don't add to existing use in different module ([#12648](https://github.com/noir-lang/noir/issues/12648)) ([b129a3b](https://github.com/noir-lang/noir/commit/b129a3b12960a76b4518430adbfd33434b0668d1)) |
| 50 | +* **lsp:** Don't delete from id_to_location ([#12647](https://github.com/noir-lang/noir/issues/12647)) ([69efcf7](https://github.com/noir-lang/noir/commit/69efcf7e9fc929e7e3a12d42447b7ca794a162b3)) |
| 51 | +* Normalize signatures during defunctionalization ([#12700](https://github.com/noir-lang/noir/issues/12700)) ([73e99dd](https://github.com/noir-lang/noir/commit/73e99ddf3d5edf81566602b23aa6ceabc3f81ca3)) |
| 52 | +* Only produce one error when non-ASCII is used in identifier ([#12704](https://github.com/noir-lang/noir/issues/12704)) ([3d19976](https://github.com/noir-lang/noir/commit/3d19976c6af0bce51bf7d0530d2045e323d785bd)) |
| 53 | +* **ownership:** `&mut { ...; expr }` always clones expr ([#12724](https://github.com/noir-lang/noir/issues/12724)) ([b95448f](https://github.com/noir-lang/noir/commit/b95448f3575c433128ae2ce73e337f4b0fd93b37)) |
| 54 | +* Remove all dead store removal from DIE ([#12595](https://github.com/noir-lang/noir/issues/12595)) ([f858ac6](https://github.com/noir-lang/noir/commit/f858ac61b5bb422ea63375c57fa8f95a81215886)) |
| 55 | +* Run mem2reg while it keeps making progress ([#12664](https://github.com/noir-lang/noir/issues/12664)) ([20aa041](https://github.com/noir-lang/noir/commit/20aa04194b2b06fe5e8d3e30276dbaac762cfa3d)) |
| 56 | +* **ssa-gen:** Consider `&mut (*x)` to be `x` in codegen_reference ([#12684](https://github.com/noir-lang/noir/issues/12684)) ([be7d175](https://github.com/noir-lang/noir/commit/be7d17552aea5a97c01a86677a3af3123b88b855)) |
| 57 | +* **ssa:** Accept `&mut T` as `&T` in SSA validation in more places ([#12751](https://github.com/noir-lang/noir/issues/12751)) ([b544d28](https://github.com/noir-lang/noir/commit/b544d28f2e0f7d35fbc170421c251e6cead302de)) |
| 58 | +* **ssa:** Do not remove Brillig stores in DIE ([#12594](https://github.com/noir-lang/noir/issues/12594)) ([fd7093f](https://github.com/noir-lang/noir/commit/fd7093fe447d8d405a8b1fcb9fa684f83c105c0a)) |
| 59 | +* **ssa:** Use `canonic_eq` in `Store`/`Load` validation ([#12754](https://github.com/noir-lang/noir/issues/12754)) ([3a7dd32](https://github.com/noir-lang/noir/commit/3a7dd3282d80e23c0327a9e0c5f7ced86fee2f72)) |
| 60 | +* Validate generic argument kinds in type definitions ([#12540](https://github.com/noir-lang/noir/issues/12540)) ([653e33a](https://github.com/noir-lang/noir/commit/653e33a4566a1092f95bce081df1a8445f4d1ad6)) |
| 61 | + |
| 62 | + |
| 63 | +### Miscellaneous Chores |
| 64 | + |
| 65 | +* Remove bytes32_to_field from stdlib ([#12619](https://github.com/noir-lang/noir/issues/12619)) ([3d0f03d](https://github.com/noir-lang/noir/commit/3d0f03dc29f29832597dbbb6d177b652f15b4bb5)) |
| 66 | +* Remove Expr::modify ([#12653](https://github.com/noir-lang/noir/issues/12653)) ([75e0032](https://github.com/noir-lang/noir/commit/75e00320237c0980271154483ab4c4356a26c189)) |
| 67 | + |
3 | 68 | ## [1.0.0-beta.21](https://github.com/noir-lang/noir/compare/v1.0.0-beta.20...v1.0.0-beta.21) (2026-05-07) |
4 | 69 |
|
5 | 70 |
|
|
0 commit comments