v1.0.0-beta.5
1.0.0-beta.5 (2025-05-09)
⚠ BREAKING CHANGES
Features
#[allow(dead_code)](#8066) (6e2ea75)nargo expandto show code after macro expansions (#7613) (8d8991a)ssa::create_program_with_passes(#8035) (f88cb08)- Add
--debug-compile-stdinto readmain.nrfromSTDINfor testing (#8253) (77b2261) - Add
--fuzz-timeouttonargo testoptions (#8326) (873380c) - Add
--no-fuzzand--only-fuzztonargo test(#8213) (097b116) - Add
loopgenerator to AST fuzzer (#7985) (5eaa916) - Add
whilegenerator to AST fuzzer (#8021) (ac6b29b) - Added 1, -1 case for inversions in brillig (#8225) (477b028)
- Allow specifying fuzz-related dirs when invoking
nargo test(#8293) (abb4ae1) - Allow splicing a resolved function into an attribute name (#7956) (5c1e184)
- AST fuzzer compare result between minimum and full SSA pipeline (#8216) (4b85c09)
- Attribute locations (#8006) (f51ee9b)
- Avoid overflow check when subtracting from a value that is the maximum for its bitsize (#8190) (f4910ca)
- Avoid unnecessary zero check in brillig overflow check (#8109) (859fd0f)
- Better error message on unicode whitespace that isn't ascii whitespace (#8295) (09d55f6)
- debugger: Debug test functions (#7958) (e7a360f)
- Disallow emitting multiple
MemoryInitopcodes for the same block (#8291) (3261a6b) - experimental: Implement separate
-Zownershipanalysis for ownership pass (#7861) (8c4a83a) - Fuzz the inliner aggressiveness along with the AST (#8270) (0d850a3)
- fuzz: Add experimental comptime code generator (#8207) (ac7a20f)
- fuzz: AST function body (#7890) (a565c53)
- fuzz: Generate arbitrary
Callin function body (#7987) (b54e8bd) - fuzz: Initial version of comptime vs brillig target for AST fuzzer (#8335) (d57382c)
- greybox_fuzzer: Maximum executions parameter added (#8390) (40ecdb2)
- greybox_fuzzer: Parallel fuzz tests (#8432) (c7ff3e7)
- greybox_fuzzer: Should_fail and should_fail_with (#8118) (4c4bee7)
- Let
nargo testuse the new greybox fuzzer (#8234) (e483531) - Let static_assert accept any type for its message (#8322) (cc3fa6f)
- Location tree for debug_info (#7034) (ae008d3)
- LSP: Workspace Symbol (#7953) (a634ca0)
- MessagePack serialisation for circuits (#7690) (69c36dc)
- Metamorphic AST fuzzing (#8299) (86e61f0)
- Omit element size array for more array types (#8257) (b101f73)
- Optimize
checked_to_uncheckedto take into account multiplications (#8188) (b411121) - perf: Optimise array index checks in loops (#7893) (e13142b)
- Port callstack resolution from aztec to noirjs (#7642) (7fea227)
- Produce fewer memory blocks in ACIRgen (#8250) (43bbaa5)
- Remove unnecessary dynamic arrays when pushing onto slices (#8287) (9e69d4c)
- Replace field divisions by constants with multiplication by inv… (#8053) (28250ea)
- Skip inverting field elements with values +-1 in ACVM (#8049) (46002a2)
- Skip SSA passes that contain any of the given messages (#8416) (2734536)
- Ssa fuzzer (#7641) (9158338)
- SSA pass impact report (#8393) (b6570a5)
- ssa: Mark transitively dead parameters during DIE (#8254) (2902503)
- ssa: Prune dead block parameters (#8239) (96e8679)
- stdlib: Expose the times a mock oracle is called (#7996) (5baadf2)
- test: Add
nargo_fuzz_target(#8308) (3a9ff19) - testing: Add SSA interpreter for testing SSA (#8115) (dc84c5d)
Bug Fixes
- acir: Check whether opcodes were laid down for non-equality check before fetching payload locations (#8133) (af34226)
- acir: Do not do the bound_constraint_with_offset optimization when the rhs is const and zero (#8243) (49a025e)
- Add handling for u128 infix ops in interpreter (#8392) (85241de)
- Add proper handling for
u128in comptime interpreter (#8079) (dd01f11) - Allow keywords in function names in SSA parser (#8063) (f2cfe3e)
- Allow more slack in AST calibration for CI (#8076) (2714a74)
- Allow names to collide in the values/types namespaces (#8286) (f2ff169)
- Better logic for determining whether a struct is constructed or not (#7806) (2056df7)
- Better tests to check for unused struct error (#8007) (f7ba76a)
- brillig: SliceRefCount reads from the appropriate pointer (#8148) (c69acd7)
- Checks for index out of bounds also for arrays (#7827) (7d47ca3)
- Comptime shift-right overflow is zero (#8380) (61156aa)
- Correct error message on comptime overflow (#8238) (68e8380)
- Correct proptest Arbitrary for NumericType (#7945) (a437f8e)
- debugger: Improve debugger_expected_call_stack test (#7769) (487d9e9)
- debugger: Send idle at loop end + fix test (#8187) (76cc8b4)
- Detect ABI change of fuzzing harnesses (#8193) (3e3e302)
- Disable range constraints using the predicate (#8396) (9e1e0fe)
- Disallow the
i1type (#8172) (d207ae1) - Do not panic if RHS constant in division has more bits than the operand (#8197) (bddf22d)
- docs: Fix proof splitting script in solidity guide (#8033) (b31d409)
- docs: Reduce header image size (#7988) (7e4deb9)
- Don't disallow writing to memory after passing it to brillig (#8276) (4bc636a)
- Don't solve
Selfin trait impl method via trait method lookup (#7974) (770bdda) - Don't take implicitly added named generics when checking where clauses (#8184) (ef57db0)
- Don't use relative path in nargo_cli build script (#7982) (def2e8c)
- Error on tuple mismatch (#8424) (aceb4fc)
- expand: Output safety comment before statements (#8378) (05df1c4)
- expand: Try to use "Self" in function calls (#8353) (4e064ba)
- Fix evaluation order of assignments with side-effects in their rhs (#8342) (a2dd9cf)
- Fix sequencing of side-effects in lvalue (#8384) (ea71a0e)
- Fix some Display implementations for AST nodes (#8316) (af202d7)
- fuzz: Remove duplicate gen_loop, move unconstrained generators up (#8029) (10a6d1a)
- Handle truncating constants to 128 bits (#8180) (6a6b910)
- Let comptime Field value carry the field's sign (#8343) (f81925d)
- Let SSA parser parse calls to print (#8232) (abd805e)
- LSP: Implement missing members associated constants (#8016) (b54fd28)
- nargo-rpc: Restart http-client on ClientError::Transport error (#7954) (df0439e)
- Ordering of items in callstacks (#8338) (bbfac92)
- ownership: Clone global arrays (#8328) (b8d04d6)
- parser: Avoid using
Location::dummy()(#8178) (9845edc) - parser: Do not use
Ident::default()(#8224) (7dcfbec) - parser: Error on missing function body (#8001) (12fcceb)
- parser: Error on missing let semicolon in trait (and others) (#8101) (7108709)
- Print slice composite types surrounded by parentheses (#8412) (3a01a27)
- Replace one more path pattern when producing stderr.txt (#7970) (11bd876)
- Replace values in data_bus too (#8086) (28b000e)
- Return zero and insert an assertion if RHS bit size is over the limit in euclidian division (#8294) (f314498)
- Returns 0 for right shift overflow (#8189) (13158f3)
- SSA pass print filter to include the count (#8074) (73a1385)
- ssa_gen: Do not code gen fetching of empty arrays when initializing the data bus (#8426) (a593e48)
- ssa: Do not inline simple recursive functions (#8127) (58f17b1)
- ssa: Do not remove unused checked binary ops (#8303) (ce0135a)
- ssa: Do not unroll loop with break (#8090) (ea3b681)
- ssa: Do not use inner else condition when collapsing IfElse based upon the then condition (#8040) (75870d3)
- ssa: Fix possibility to
Field % Fieldoperaions in Brillig from SSA (#8105) (bee86cb) - ssa: Loop range with u1 (#8131) (4acfa1c)
- ssa: Map terminator instructions after constant folding (#8019) (4386a98)
- ssa: Mislabeled instructions with side effects in EnableSideEffectsIf removal pass (#8355) (74279a4)
- ssa: Recursive shared Brillig entry points (#8099) (797aea9)
- ssa: Remove OOB checks inserted during DIE (#7995) (d5cc0e2)
- ssa: Remove unused calls to pure functions (#8298) (bf93f86)
- Use
get_local_or_global_instructionintry_optimize_array_set_from_previous_get(#8200) (c9721fb) - Use
get_local_or_global_instructionwhen simplifyingIfElse(#8185) (78c7e37) - Use
IntegerConstantfor loop boundaries inunrolling(#8094) (17958e3) - Use correct meta attribute names in contract custom attributes (#8273) (84a7d3e)
- Use proper max bit size during truncation (#8010) (6ad8a48)
- Use temporary dirs when fuzzing during
nargo test(#8275) (a5ffd08) - Uses non-zero points with ec-add-unsafe (#8248) (9f88f19)
- Validate numeric types when passing them to a FunctionBuilder (#8215) (c14cc79)
- Warn on and discard unreachable statements after break and continue (#8382) (a686856)
- Wrapping mul support for u128 (#7941) (7d4f819)