v1.0.0-beta.4
Pre-release
Pre-release
1.0.0-beta.4 (2025-04-07)
⚠ BREAKING CHANGES
- remove poseidon from stdlib (#7650)
- make
ResolverError::UnnecessaryPub
a hard error (#7664) - convert
TraitMethodNotInScope
to error (#7427) - bump bb version to v0.77.0 (#7599)
- remove merkle module from stdlib (#7582)
- remove deprecated hash functions from stdlib (#7477)
- frontend: Restrict capturing mutable variable in lambdas (#7488)
- remove U128 struct from stdlib (#7529)
- bump rust edition to 2024 (#7533)
- bump msrv to 1.85.0 (#7530)
- cli: Add
--unstable-features
to gate unstable features (#7449)
Features
- Add
EmbeddedCurvePoint::generator()
to return generator point (#7754) (49c56a5) - Add basic comptime correctness tests (#7825) (29e8fb4)
- Add Hash impls for EmbeddedCurvePoint and EmbeddedCurveScalar (#6970) (3e3a2c8)
- Add optional oracle resolver url in
acvm_cli
(#7630) (a9de769) - Add simplified OR when
rhs
orlhs
is all 1s (#7880) (f1b10dc) - Allow
fn
returning()
without having to write-> ()
(#7717) (e8644d0) - Array concat method (#7199) (5b725bb)
- Better error message when generic argument cannot be determined (#7839) (77cf4f6)
- Better error message when keyword is found instead of type in p… (#7501) (43ca11a)
- cli: Add
--unstable-features
to gate unstable features (#7449) (fd213f6) - cli: Log and replay oracle transcript (#7417) (95ac7a8)
- Compare bincode to CBOR, FlexBuffers and Protobuf - implement best (#7513) (d047779)
- debugger: REPL add breakpoint by sourcecode line (#5204) (ef51d8a)
- debugging: Add
--count-array-copies
flag (#7789) (2c63f80) - Error if generic type parameter in impl is not mentioned in self type (#6388) (90ad693)
- experimental: Add invalid pattern syntax error (#7487) (7aa23ec)
- experimental: Enable ownership syntax (#7603) (9594dee)
- experimental: Issue errors for unreachable match branches (#7556) (e832244)
- experimental: Support struct constructors in match patterns (#7489) (6f79fd1)
- Faster
Field
decomposition (#7788) (507a453) - formatter: Improved formatting of long struct patterns (#7899) (9c94ab1)
- fuzz: AST fuzzer skeleton (#7865) (52ef553)
- Fuzzer for noir programs (#6770) (0dbd66e)
- Generic trait bounds (#7891) (d066dca)
- Let all compiler errors carry a Location instead of a Span (#7486) (4fdc742)
- Optimize out range checks on limiting cases (#7510) (6f78848)
- Optimize unconstrained
embedded_curve_add
(#7751) (6723aec) - opt: Remove truncate after range_check (#7832) (25fd5c2)
- parser: Better error recovery when identifier doesn't come in constructor (#7887) (ebb5015)
- parser: Improve error recovery when
fn
is missing between mod… (#7884) (f6b39b1) - Perform constant sha256 compressions at compile-time (#7566) (c2022f4)
- performance: Avoid extra Brillig array offsetting for constant indices (#7522) (b8b0e73)
- Print initialization witnesses and show all blackbox witnesses (#7919) (836bd12)
- Relate errors to macro built-ins errors (#7609) (83d7e6a)
- Remove range constraints on witnesses when use as array index is more restrictive (#7848) (632252d)
- Show which generic argument cannot be inferred when it's on the… (#7914) (c6aa9ba)
- Simplify simple conditionals for brillig (#7205) (9056d74)
- SSA gen unit tests (#7868) (702cb9c)
- ssa: Basic control dependent LICM (#7660) (97e4090)
- ssa: Dominance frontiers (#7692) (0816c41)
- ssa: Post dominator tree (#7595) (94e1a99)
- Support
<Type as Trait>::method
in expressions (#7551) (fdd2fe7) - Sync from aztec-packages (#7474) (c254c3c)
- Sync from aztec-packages (#7606) (3531474)
- Test error spans and messages (#7526) (da5227e)
- Type path for any type (#7824) (fd674f0)
- Use relative paths in "Call stack" and "Witness saved to" (#7708) (c39f33d)
- Use resolved type instead of needing Constructor.struct_type (#7500) (e26e993)
- Warn if array index type is not u32 (#7820) (90c0f4f)
Bug Fixes
- Add missing inputs to
BlackBoxFuncCall::get_inputs_vec
for EcAdd (#7752) (a46f05f) - Address warnings in stdlib (#7845) (ab13480)
- Allow method call after block, if and match (#7655) (a7356e2)
- Allow omitting ';' after last block statement if it's an assignment (#7718) (df20280)
- Allow referring to comptime locals at runtime (#7681) (6d7c543)
- Allow renaming a trait when importing it (#7688) (4f67909)
- Bump tokio to 1.44.2 (#7950) (b633d23)
- ci: Exclude inliner specific reference count tests from Brillig trace report (#7761) (58be0cd)
- ci: Fail the CI job on a Brillig report failure (#7762) (3b4b7fa)
- Compare Quoted by expanding interned values (#7602) (1a1eb6f)
- Correctly format let followed by comment before unsafe (#7659) (637deea)
- Correctly format trait function with multiple where clauses (#7531) (c438547)
- debug: Fix RC underflow check (#7849) (f1afc07)
- Display causes but not stack trace in CLI error report (#7584) (d57e0ac)
- Do not use enable_side_effect in acir-gen if instruction does not req… (#7847) (1b3743b)
- Doc comments on functions warn unexpectedly (#7721) (bce7399)
- Don't crash on broken impl syntax (#7512) (677c10c)
- Don't panic when shifting too much (#7429) (5073370)
- Don't use dummy location when inserting debug code (#7482) (87196fe)
- Error on infinitely recursive types (#7579) (ba5beb6)
- Experiment with
DecrementRc
(#7629) (b059fd1) - experimental: Allow shadowing in match patterns (#7484) (8e68ce6)
- experimental: Fix execution of match expressions with multiple branches (#7570) (d148df6)
- experimental: Replace most remaining match panics with errors (#7536) (d118e17)
- Fix a few cases where safety comment wasn't correctly identified (#7548) (22c7d9d)
- Fix nondeterminsm on aarch64 vs amd64 (#7942) (8c4d9a2)
- Fix stdout testing when running test programs (#7741) (cbbfc38)
- Fix type of internal variable created while destructuring tuples and structs during monomorphization (#7916) (8b12368)
- Fixes signed integer mutations in the fuzzers (#7815) (162ef86)
- Format last statement in block with optional semicolon (#7802) (ff7e215)
- Format string literals verbatim (#7792) (c2641c1)
- formatter: Account lambda beginning when formatting method call (#7857) (9dc5818)
- formatter: Format
&[...]
type (#7858) (cd74dbf) - frontend: Restrict capturing mutable variable in lambdas (#7488) (899e8c8)
- FunctionDefinition::as_typed_expr didn't work well for trait imp… (#7611) (b3443c1)
- Handle predicate value reduction in array get also for the databus (#7730) (d9714db)
- Implicit associated types come before explicit types (#7813) (a942990)
- Improve misleading error message when object type is unknown (#7799) (d18a1dd)
- Issue duplicate error on impl function without self (#7490) (69e901f)
- Log to
stderr
(#7585) (223656f) - LSP: Bring back global values on hover (#7829) (a511b50)
- LSP: References/rename only when underlying span has the correct… (#7598) (a6e5526)
- Mark array index as used in DIE pass when replacing read with explicit bounds check (#7786) (20a9084)
- No longer error on INT_MIN globals (#7519) (0c0c397)
- noir_codegen: Allow exporting argless functions (#7862) (6f9c9ff)
- parser: Parse double
&
in type (#7867) (f349597) - performance: Accurately mark safe constant indices for arrays of complex types (#7491) (ffcc6f8)
- Proper use of add_unsafe in unconstrained (#7816) (9f47761)
- Properly constrain quotient during field truncation (#7895) (47ba613)
- Shift right overflow in ACIR with unknown var now returns zero (#7509) (ca21820)
- Show-ssa-pass implies force-compile (#7841) (891c5aa)
- ssa: Don't check Brillig calls for coverage if they don't return anything (e.g. println) (#7644) (ceb8b35)
- TokensPrettyPrinter was missing some spaces between tokens (#7607) (073625a)
- Update error message to display 128 bits as valid bit size (#7626) (b4916a5)
- Use generics from self type when using
Self
(#7897) (c5d8dfe) - Wrong printing of line comment in quoted (#7694) (c30bcd7)
Miscellaneous Chores
- Bump bb version to v0.77.0 (#7599) (2d373ec)
- Bump msrv to 1.85.0 (#7530) (42b4ba3)
- Bump rust edition to 2024 (#7533) (826b18a)
- Convert
TraitMethodNotInScope
to error (#7427) (37be49f) - Make
ResolverError::UnnecessaryPub
a hard error (#7664) (7000792) - Remove deprecated hash functions from stdlib (#7477) (a5b47df)
- Remove merkle module from stdlib (#7582) (1192336)
- Remove poseidon from stdlib (#7650) (1bfce71)
- Remove U128 struct from stdlib (#7529) (47f4d0b)