barretenberg: v0.73.0
Pre-release
Pre-release
0.73.0 (2025-02-01)
⚠ BREAKING CHANGES
- avm: include length in bytecode hash (#11425)
Features
loop
keyword in runtime and comptime code (noir-lang/noir#7096) (a7f8d96)loop
must have at least onebreak
(noir-lang/noir#7126) (a7f8d96)- Add
noir-inspector
(noir-lang/noir#7136) (a7f8d96) - avm: Constrain sha256 (#11048) (897c840)
- avm: Constraining bytecode (part 1) (#11382) (2779ea4)
- avm: Get_row optimization - 25x faster logderiv inv (#11605) (a273136)
- avm: Include length in bytecode hash (#11425) (ab2c860)
- avm: Range checks in vm2 (#11433) (79cbe04)
- avm: Vm2 bitwise subtrace (#11473) (859c29b)
- brillig: Set global memory size at program compile time (noir-lang/noir#7151) (a7f8d96)
- brillig: SSA globals code gen (noir-lang/noir#7021) (a7f8d96)
- Change data store backend to use liblmdb directly (#11357) (7e3a38e)
- experimental: Construct enum variants in expressions (noir-lang/noir#7174) (a7f8d96)
- experimental: Try to infer lambda argument types inside calls (noir-lang/noir#7088) (a7f8d96)
- Gemini PolynomialBatcher (#11398) (379aafa)
- Inline simple functions (noir-lang/noir#7160) (a7f8d96)
- LSP autocomplete module declaration (noir-lang/noir#7154) (a7f8d96)
- LSP chain inlay hints (noir-lang/noir#7152) (a7f8d96)
- Parse globals in SSA parser (noir-lang/noir#7112) (a7f8d96)
- Parser and formatter support for
enum
s (noir-lang/noir#7110) (a7f8d96) - Resolve enums & prepare type system (noir-lang/noir#7115) (a7f8d96)
- Shplemini claim batcher (#11614) (f4e2953)
- ssa: Add flag to DIE pass to be able to keep
store
instructions (noir-lang/noir#7106) (a7f8d96) - ssa: Expand feature set of the Brillig constraint check (noir-lang/noir#7060) (a7f8d96)
- ssa: Pass to preprocess functions (noir-lang/noir#7072) (a7f8d96)
- ssa: Reuse constants from the globals graph when making constants in a function DFG (noir-lang/noir#7153) (a7f8d96)
- Unconstrained optimizations for BoundedVec (noir-lang/noir#7119) (a7f8d96)
Bug Fixes
Function::is_no_predicates
always returned false for brillig f… (noir-lang/noir#7167) (a7f8d96)- Allow calling trait impl method from struct if multiple impls exist (noir-lang/noir#7124) (a7f8d96)
- Avoid creating unnecessary memory blocks (noir-lang/noir#7114) (a7f8d96)
- Defunctionalize pass on the caller runtime to apply (noir-lang/noir#7100) (a7f8d96)
- docs: Update broken links to EC lib (noir-lang/noir#7141) (a7f8d96)
- Don't always use an exclusive lock in
nargo check
(noir-lang/noir#7120) (a7f8d96) - Ensure canonical bits decomposition (noir-lang/noir#7168) (a7f8d96)
- Fix boxes (#11592) (3d40260)
- Fix noir_bb browser tests (#11552) (17aec31)
- Fuzzer value mutation and instruction write (#11570) (d120cbe)
- Keep
inc_rc
for array inputs during preprocessing (noir-lang/noir#7163) (a7f8d96) - LSP hover over function with
&mut self
(noir-lang/noir#7155) (a7f8d96) - LSP: Correct signature for assert and assert_eq (noir-lang/noir#7184) (a7f8d96)
- Preserve types when reading from calldata arrays (noir-lang/noir#7144) (a7f8d96)
- Prevent overlapping associated types impls (noir-lang/noir#7047) (a7f8d96)
- Proper cleanup when breaking from comptime loop on error (noir-lang/noir#7125) (a7f8d96)
- Remove unused brillig functions (noir-lang/noir#7102) (a7f8d96)
- ssa: Resolve value before fetching from DFG in a couple cases (noir-lang/noir#7169) (a7f8d96)
- ssa: Use post order when mapping instructions in loop invariant pass (noir-lang/noir#7140) (a7f8d96)
Miscellaneous
- Add apps & fee support to AVM simulator and AVM bb-prover tests (#11323) (a836786)
- Add benchmarking dashboard (noir-lang/noir#7068) (a7f8d96)
- Add compile-time assertions on generic arguments of stdlib functions (noir-lang/noir#6981) (a7f8d96)
- avm: Better namespace reporting (#11535) (ac26e1d)
- avm: Get rid of CommitmentLabels class (#11523) (2c250c4)
- avm: Group lookups and perms per file (#11509) (a27dd66)
- avm: Less codegen bloat (#11504) (7b510fe)
- avm: Make check_relation safer (#11593) (13863eb)
- avm: Static labels (#11573) (06a7633)
- bb: Minor fixes (#11557) (f77b11e)
- Cookbook Onboard integration (noir-lang/noir#7044) (a7f8d96)
- Downgrade playwright (#11643) (d421460)
- experimental: Prevent enum panics by returning Options where possible instead of panicking (noir-lang/noir#7180) (a7f8d96)
- Formatting issues / minor errors in the docs (noir-lang/noir#7105) (a7f8d96)
- Let
add_definition_location
take a Location (noir-lang/noir#7185) (a7f8d96) - Let
Function::inlined
take ashould_inline_call
function (noir-lang/noir#7149) (a7f8d96) - Lock to ubuntu 22.04 (noir-lang/noir#7098) (a7f8d96)
- Mark libs good (noir-lang/noir#7123) (a7f8d96)
- Pcs tests refactor (#11188) (c4892c6)
- refactor: Remove globals field on Ssa object and use only the shared globals graph (noir-lang/noir#7156) (a7f8d96)
- Relax threshold for reporting regressions (noir-lang/noir#7130) (a7f8d96)
- Remove comments for time/memory benchmarks (noir-lang/noir#7121) (a7f8d96)
- Rename constraining unit tests in vm2 (#11581) (570cdba)
- Revert "remove debug_logging flag" (#11498) (de304d8)
- Simplified bb.js bundling (#11622) (8408ede)
- ssa: Use correct prefix when printing array values in global space (noir-lang/noir#7095) (a7f8d96)
- Turn on overflow checks in CI rust tests (noir-lang/noir#7145) (a7f8d96)