Skip to content

v1.0.0-beta.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@noirwhal noirwhal released this 20 Dec 23:54
03b58fa

1.0.0-beta.1 (2024-12-20)

⚠ BREAKING CHANGES

Features

  • nargo test -q (or nargo test --format terse) (#6776) (919149d)
  • std::hint::black_box function. (#6529) (237e8fa)
  • Add (x | 1) optimization for booleans (#6795) (feec2a1)
  • Add BoundedVec::from_parts and BoundedVec::from_parts_unchecked (#6691) (768aa7c)
  • Add nargo test --format json (#6796) (eb975ab)
  • Add a warning when using unsafe blocks without safety comments (#6860) (5c00a79)
  • Add memory report into the CI (#6630) (6acef6d)
  • Allow filtering which SSA passes are printed (#6636) (50f4aa7)
  • Allow ignoring test failures from foreign calls (#6660) (e3a0914)
  • Better error message when trying to invoke struct function field (#6661) (ea7c04a)
  • ci: Initial compilation report on test_programs (#6731) (b3c04f0)
  • cli: Run command on the package closest to the current directory (#6752) (f45b354)
  • cli: Verify return against ABI and Prover.toml (#6765) (5795a09)
  • comptime: Implement blackbox functions in comptime interpreter (#6551) (10a9f81)
  • Configurable external check failures (#6810) (73ccd45)
  • Flatten nested if-else statements with equivalent conditions (#6875) (1a0a5f6)
  • Improve parser recovery of constructor field with '::' instead of ':' (#6701) (c400543)
  • Order attribute execution by their source ordering (#6326) (852155d)
  • perf: Track last loads per block in mem2reg and remove them if possible (#6088) (624ae6c)
  • Reduce memory consumption by storing array length as u32 during SSA (#6606) (6196d05)
  • Replace eval_global_as_array_length with type/interpreter evaluation (#6469) (ddb4673)
  • Replace quadratic removal of rc instructions (#6705) (7619da5)
  • Replace quadratic removal of rc instructions (AztecProtocol/aztec-packages#10416) (66d3275)
  • Revert changes to ValueMerger and Instruction::IfElse (#6673) (f81244c)
  • Several nargo test improvements (#6728) (1b0dd41)
  • Show printable byte arrays as byte strings in SSA (#6709) (fc11b63)
  • Simplify jmpifs by reversing branches if condition is negated (#5891) (ba7a568)
  • ssa: Bring back tracking of RC instructions during DIE (#6783) (bc03152)
  • ssa: Deduplicate intrinsics with predicates (#6615) (53f16c7)
  • ssa: Hoist MakeArray instructions during loop invariant code motion (#6782) (b88db67)
  • ssa: Hoisting of array get using known induction variable maximum (#6639) (26d2351)
  • ssa: Implement missing brillig constraints SSA check (#6658) (c5a4caf)
  • ssa: Option to set the maximum acceptable Brillig bytecode increase in unrolling (#6641) (4ff3081)
  • ssa: Simplify array get from set that writes to the same dynamic index (#6684) (304403f)
  • Sync from aztec-packages (#6634) (aa143a7)
  • Sync from aztec-packages (#6656) (594aad2)
  • Sync from aztec-packages (#6824) (b3bca76)
  • Sync from noir (AztecProtocol/aztec-packages#10307) (66d3275)
  • test: Check that nargo::ops::transform_program is idempotent (#6694) (9f3e0e6)
  • tooling: Skip program transformation when loaded from cache (#6689) (7feb658)
  • Warn on unnecessary unsafe blocks (#6867) (a97402a)

Bug Fixes

  • Allow empty loop headers (#6736) (332ba79)
  • Allow multiple _ parameters, and disallow _ as an expression you can read from (#6657) (d80a9d7)
  • Always return an array of u8s when simplifying Intrinsic::ToRadix calls (#6663) (59c0c35)
  • Correct signed integer handling in noirc_abi (#6638) (ecaf63d)
  • Correct types returned by constant EC operations simplified within SSA (#6652) (eec5970)
  • Detect cycles in globals (#6859) (0d7642c)
  • Disable failure persistance in nargo test fuzzing (#6777) (68ff7bd)
  • Disallow #[export] on associated methods (#6626) (7b56904)
  • Do not merge expressions that contain output witnesses (#6757) (f9abf72)
  • Do not warn on unused functions marked with #[export] (#6625) (30f8378)
  • Don't deduplicate binary math of unsigned types (#6848) (ee0754b)
  • Don't remove necessary RC instructions in DIE pass (#6585) (440d94d)
  • Double alias in path (#6855) (82f595b)
  • Git dependency trailing slash (#6725) (df71df7)
  • Implement as_field and from_field in the interpreter (#6829) (f037c36)
  • Improve type error when indexing a variable of unknown type (#6744) (909b22b)
  • LSP auto-import text indent (#6699) (bbe7564)
  • LSP code action wasn't triggering on beginning or end of identifier (#6616) (1b910bc)
  • LSP: Use generic self type to narrow down methods to complete (#6617) (454b77b)
  • Map entry point indexes after all ssa passes (#6740) (1b6e26b)
  • Minimal change to avoid reverting entire PR #6685 (#6778) (0925a33)
  • Optimize array ref counts to copy arrays much less often (#6685) (24cc19e)
  • Optimizer to keep track of changing opcode locations (#6781) (13c41d2)
  • Parser would hand on function type with colon in it (#6764) (9d7aadc)
  • Prevent hoisting binary instructions which can overflow (#6672) (b4750d8)
  • Print ssa blocks without recursion (#6715) (5ccde81)
  • Println("{{}}") was printing "{{}}" instead of "{}" (#6745) (36bca82)
  • Several format string fixes and improvements (#6703) (b70daf4)
  • ssa: Don't deduplicate constraints in blocks that are not dominated (#6627) (b024581)
  • ssa: Remove RC tracker in DIE (#6700) (f2607fd)
  • ssa: Track all local allocations during flattening (#6619) (6491175)
  • Typo in u128 docs (#6711) (37a4996)
  • Use correct type for attribute arguments (#6640) (de3e77a)
  • Use extension in docs link so it also works on GitHub (#6787) (655a3d3)
  • Used signed division for signed modulo (#6635) (dace078)

Miscellaneous Chores