v0.24.0
Pre-release
Pre-release
0.24.0 (2024-02-12)
⚠ BREAKING CHANGES
- rename bigint_neg into bigint_sub (AztecProtocol/aztec-packages#4420)
- Add expression width into acir (AztecProtocol/aztec-packages#4014)
- init storage macro (AztecProtocol/aztec-packages#4200)
- acir: Move
is_recursive
flag to be part of the circuit definition (AztecProtocol/aztec-packages#4221) - Sync commits from
aztec-packages
(#4144)
Features
- Add bit size to const opcode (AztecProtocol/aztec-packages#4385) (158c8ce)
- Add brillig array index check (#4127) (c29f85f)
- Add definitions for From and Into traits to Noir prelude (#4169) (4421ce4)
- Add expression width into acir (AztecProtocol/aztec-packages#4014) (158c8ce)
- Add instrumentation for tracking variables in debugging (#4122) (c58d691)
- Add option to print monomorphized program (#4119) (80f7e29)
- Add support for overriding expression width (#4117) (c8026d5)
- Add warnings for usage of restricted bit sizes (#4234) (0ffc38b)
- Allow bitshifts to be represented in SSA for brillig (#4301) (d86ff1a)
- Allow brillig to read arrays directly from memory (AztecProtocol/aztec-packages#4460) (158c8ce)
- Allow globals to refer to any expression (#4293) (479330e)
- Allow nested arrays and vectors in Brillig foreign calls (AztecProtocol/aztec-packages#4478) (158c8ce)
- Allow variables and stack trace inspection in the debugger (#4184) (bf263fc)
- avm: Back in avm context with macro - refactor context (AztecProtocol/aztec-packages#4438) (158c8ce)
- aztec-nr: Initial work for aztec public vm macro (AztecProtocol/aztec-packages#4400) (158c8ce)
- Deallocate stack items at the instruction level (#4339) (8f024a8)
- Disable constraint bubbling pass (#4131) (9ba2de6)
- Disable unused variable checks on low-level and oracle functions (#4179) (8f70e57)
- Evaluation of dynamic assert messages (#4101) (c284e01)
- Improve Error Handling for Cargo in Bootstrap Script (#4211) (3a90849)
- Init storage macro (AztecProtocol/aztec-packages#4200) (158c8ce)
- lsp: Goto type reference for Struct (#4091) (d56cac2)
- Move bounded_vec into the noir stdlib (#4197) (c50621f)
- Multiply first to allow more ACIR gen optimizations (#4201) (882639d)
- Option expect method (#4219) (8e042f2)
- Perform constraints on uncasted values if they are the same type (#4303) (816fa85)
- Remove predicate from
sort
intrinsic function (#4228) (d646243) - Remove replacement of boolean range opcodes with
AssertZero
opcodes (#4107) (dac0e87) - Replace bitwise ANDs used for truncation with
Instruction::Truncate
(#4327) (eb67ff6) - Replace modulo operations with truncations where possible (#4329) (70f2435)
- Separate compilation and expression narrowing in
nargo
interface (#4100) (62a4e37) - Simplify all unsigned constant NOT instructions (#4230) (fab4a6e)
- Sync commits from
aztec-packages
(#4144) (0205d3b) - Use constraint information to perform constant folding (#4060) (9a4bf16)
Bug Fixes
- Accurate tracking of slice capacities across blocks (#4240) (7420dbb)
- Allow function calls in global definitions (#4320) (0dc205c)
- Allow performing bitwise NOT on unsigned integers (#4229) (b3ddf10)
- Apply generic arguments from trait constraints before instantiating identifiers (#4121) (eb6fc0f)
- Apply range constraints to return values from unconstrained functions (#4217) (3af2a89)
- Apply trait constraints from method calls (#4152) (68c5486)
- Better errors for missing
fn
keyword (#4154) (057c208) - Check for tests in all packages before failing due to an unsatisfied test filter (#4114) (1107373)
- Clean error when attemping to return a slice from Brillig to ACIR (#4280) (bcad4ec)
- Correct result when assigning shared arrays in unconstrained code (#4210) (bdd8a96)
- docs: Codegen docs before cutting a new version (#4183) (2914310)
- Ensure that destination register is allocated when moving between registers in brillig gen (#4316) (ca0a56e)
- Ensure that unconstrained entrypoint functions don't generate constraints (#4292) (fae4ead)
- From field with constant values (#4226) (593916b)
- lsp: Crash when file not in workspace (#4146) (cf7130f)
- lsp: Replace panics with errors (#4209) (26e9618)
- Maintain correct type when simplifying
x ^ x
(#4082) (9d83c2b) - Message formatting for assert statement (#4323) (3972ead)
- Prevent debugger crashing on circuits with no opcodes (#4283) (2e32845)
- Prevent declarations of blackbox functions outside of the stdlib (#4177) (9fb6b09)
- Remove panic from
init_log_level
inacvm_js
(#4195) (2e26530) - Respect order in bubble up for redundant asserts (#4109) (189aa48)
- Revert "correct result when assigning shared arrays" and added regression test (#4333) (05e78b3)
- Save the data bus to the current function before generating others (#4047) (0a5bd4f)
- Simplify constant assert messages into
ConstrainError::Static
(#4287) (fd15052) - Ssa typing for array & slice indexes (#4278) (4074bab)
- Ssa typing for assign_lvalue_index (#4289) (37f149c)
- SSA typing for right shifts (#4302) (41ee1aa)
- Ssa typing of make_offset (#4277) (e4378ee)
- Track graphs of item dependencies to find dependency cycles (#4266) (61eabf1)
- Type check ACIR mutable reference passed to brillig (#4281) (7e139de)
- Update array method type signatures in the docs (#4178) (7c0a955)
- Zero out input to
to_radix
calls if inactive (#4116) (3f5bad3)
Miscellaneous Chores
- acir: Move
is_recursive
flag to be part of the circuit definition (AztecProtocol/aztec-packages#4221) (158c8ce) - Rename bigint_neg into bigint_sub (AztecProtocol/aztec-packages#4420) (158c8ce)