-
Notifications
You must be signed in to change notification settings - Fork 219
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(tooling): Skip program transformation when loaded from cache #6689
Conversation
Peak Memory Sample
|
This is mostly down to keeping things simple compared to hashing all the various contract functions, etc. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will currently still optimize cached programs in some cases.
Within compile_no_check
we use the hash of the monomorphized program rather than all of the input files so that the cache ignores changes in comments, etc. as these don't affect the final output. In the new hash you've added however we're including the debug info which includes the full source which was used to compile the program so this hash will change due to comment changes.
We can then have situations where the "inner" hash check will pass but the "outer" one will not - resulting in the cached program being optimized again.
Maybe I'm missing something, but this will only happen if the
If the "inner" has check passed we return the |
What think I'm doing is basically this: fn compile_package(package) {
let cached_program = load_cached_program(package);
let program = compile_program(package, cached_program);
if program == cached_program {
return;
}
optimize(program);
save(package, program);
} |
Yeah, this is a brainfart on my end. This shouldn't be an issue. |
…noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
…oir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
…ir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
…s in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
noir-lang/noir#6585)" (noir-lang/noir#6693) fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
…fElse` (noir-lang/noir#6673) chore: Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
…-lang/noir#6673) chore: Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
fix(ssa): Remove RC tracker in DIE (noir-lang/noir#6700) chore: consolidate some CI workflows to reduce sprawl (noir-lang/noir#6696) fix: LSP auto-import text indent (noir-lang/noir#6699) feat: improve parser recovery of constructor field with '::' instead of ':' (noir-lang/noir#6701) feat: revert changes to `ValueMerger` and `Instruction::IfElse` (noir-lang/noir#6673) chore: Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
fix(ssa): Remove RC tracker in DIE (noir-lang/noir#6700) chore: consolidate some CI workflows to reduce sprawl (noir-lang/noir#6696) fix: LSP auto-import text indent (noir-lang/noir#6699) feat: improve parser recovery of constructor field with '::' instead of ':' (noir-lang/noir#6701) feat: revert changes to `ValueMerger` and `Instruction::IfElse` (noir-lang/noir#6673) chore: Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
noir-lang/noir#6714) fix: Optimize array ref counts to copy arrays much less often (noir-lang/noir#6685) feat: show printable byte arrays as byte strings in SSA (noir-lang/noir#6709) fix: Typo in u128 docs (noir-lang/noir#6711) chore: Update pprof (noir-lang/noir#6710) feat: replace quadratic removal of `rc` instructions (noir-lang/noir#6705) chore: update release-please action (noir-lang/noir#6704) fix(ssa): Remove RC tracker in DIE (noir-lang/noir#6700) chore: consolidate some CI workflows to reduce sprawl (noir-lang/noir#6696) fix: LSP auto-import text indent (noir-lang/noir#6699) feat: improve parser recovery of constructor field with '::' instead of ':' (noir-lang/noir#6701) feat: revert changes to `ValueMerger` and `Instruction::IfElse` (noir-lang/noir#6673) chore: Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
…/noir#6714) fix: Optimize array ref counts to copy arrays much less often (noir-lang/noir#6685) feat: show printable byte arrays as byte strings in SSA (noir-lang/noir#6709) fix: Typo in u128 docs (noir-lang/noir#6711) chore: Update pprof (noir-lang/noir#6710) feat: replace quadratic removal of `rc` instructions (noir-lang/noir#6705) chore: update release-please action (noir-lang/noir#6704) fix(ssa): Remove RC tracker in DIE (noir-lang/noir#6700) chore: consolidate some CI workflows to reduce sprawl (noir-lang/noir#6696) fix: LSP auto-import text indent (noir-lang/noir#6699) feat: improve parser recovery of constructor field with '::' instead of ':' (noir-lang/noir#6701) feat: revert changes to `ValueMerger` and `Instruction::IfElse` (noir-lang/noir#6673) chore: Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE chore: Remove inliner override for `reference_counts` test (noir-lang/noir#6714) fix: Optimize array ref counts to copy arrays much less often (noir-lang/noir#6685) feat: show printable byte arrays as byte strings in SSA (noir-lang/noir#6709) fix: Typo in u128 docs (noir-lang/noir#6711) chore: Update pprof (noir-lang/noir#6710) feat: replace quadratic removal of `rc` instructions (noir-lang/noir#6705) chore: update release-please action (noir-lang/noir#6704) fix(ssa): Remove RC tracker in DIE (noir-lang/noir#6700) chore: consolidate some CI workflows to reduce sprawl (noir-lang/noir#6696) fix: LSP auto-import text indent (noir-lang/noir#6699) feat: improve parser recovery of constructor field with '::' instead of ':' (noir-lang/noir#6701) feat: revert changes to `ValueMerger` and `Instruction::IfElse` (noir-lang/noir#6673) chore: Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576) END_COMMIT_OVERRIDE --------- Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com> Co-authored-by: Maxim Vezenov <mvezenov@gmail.com>
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.66.0</summary> ## [0.66.0](aztec-package-v0.65.2...aztec-package-v0.66.0) (2024-12-06) ### ⚠ BREAKING CHANGES * Remove debug and winston in favor of pino ([#10355](#10355)) ### Features * Agent and broker expose OTEL metrics ([#10264](#10264)) ([c2c8cc6](c2c8cc6)) * Epoch cache, do not attest if not in committee or from current proposer ([#10327](#10327)) ([9ebaa65](9ebaa65)) * Staking integration ([#10403](#10403)) ([ecd6c4f](ecd6c4f)) ### Miscellaneous * Remove debug and winston in favor of pino ([#10355](#10355)) ([c246aba](c246aba)) </details> <details><summary>barretenberg.js: 0.66.0</summary> ## [0.66.0](barretenberg.js-v0.65.2...barretenberg.js-v0.66.0) (2024-12-06) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.66.0</summary> ## [0.66.0](aztec-packages-v0.65.2...aztec-packages-v0.66.0) (2024-12-06) ### ⚠ BREAKING CHANGES * remove `ec` module from stdlib (noir-lang/noir#6612) * Disallow `#[export]` on associated methods (noir-lang/noir#6626) * Require types of globals to be specified (noir-lang/noir#6592) * remove eddsa from stdlib (noir-lang/noir#6591) * Remove debug and winston in favor of pino ([#10355](#10355)) * remove SchnorrVerify opcode ([#9897](#9897)) ### Features * Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) ([3304046](3304046)) * Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) ([3304046](3304046)) * Add memory report into the CI (noir-lang/noir#6630) ([3304046](3304046)) * Add workflow_call trigger to network-deploy ([#10451](#10451)) ([18254e6](18254e6)) * Adding configurable data dir and p2p pk for testnet nodes ([#10422](#10422)) ([77b0039](77b0039)) * Agent and broker expose OTEL metrics ([#10264](#10264)) ([c2c8cc6](c2c8cc6)) * Allow filtering which SSA passes are printed (noir-lang/noir#6636) ([3304046](3304046)) * Allow ignoring test failures from foreign calls (noir-lang/noir#6660) ([3304046](3304046)) * Allow querying block number for tree indices ([#10332](#10332)) ([cf05a7a](cf05a7a)) * AMM ([#10153](#10153)) ([90668c3](90668c3)) * Avoid incrementing reference counts in some cases (noir-lang/noir#6568) ([3304046](3304046)) * Avoid inserting an empty leaf in indexed trees on update ([#10281](#10281)) ([5a04ca8](5a04ca8)) * Avoid inserting an empty leaf in indexed trees on update ([#10334](#10334)) ([80fad45](80fad45)) * **bb:** Define std::hash for field ([#10312](#10312)) ([752bc59](752bc59)) * Better error message when trying to invoke struct function field (noir-lang/noir#6661) ([3304046](3304046)) * Client IVC API ([#10217](#10217)) ([cc54a1e](cc54a1e)) * **comptime:** Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) ([3304046](3304046)) * Delete attestations older than a slot ([#10326](#10326)) ([24abcfe](24abcfe)) * Deploy devnet to k8s ([#10449](#10449)) ([27506c1](27506c1)) * Deploy networks via github actions ([#10381](#10381)) ([7e19b39](7e19b39)) * **docs:** Applied structure feedback ([#9288](#9288)) ([5b0b721](5b0b721)) * Epoch cache, do not attest if not in committee or from current proposer ([#10327](#10327)) ([9ebaa65](9ebaa65)) * Gas Utils for L1 operations ([#9834](#9834)) ([17fa214](17fa214)) * Improve parser recovery of constructor field with '::' instead of ':' (noir-lang/noir#6701) ([3304046](3304046)) * Integrate verify_proof calls in mock protocol circuits ([#9253](#9253)) ([7ed89aa](7ed89aa)) * Making testnet script write a docker compose file ([#10333](#10333)) ([be54cc3](be54cc3)) * Manage enqueued calls & phases in AVM witgen ([#10310](#10310)) ([e7ebef8](e7ebef8)) * Mock IVC state from arbitrary acir IVC recursion constraints ([#10314](#10314)) ([ac7c0da](ac7c0da)) * Optionally emit public bytecode ([#10365](#10365)) ([84ff623](84ff623)) * **p2p:** Persist node private p2p keys ([#10324](#10324)) ([1c32eda](1c32eda)) * **p2p:** Snappy compress p2p messages ([#10417](#10417)) ([c643a54](c643a54)) * **perf:** Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) ([3304046](3304046)) * Process blocks in parallel during epoch proving ([#10263](#10263)) ([a9d418c](a9d418c)) * Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) ([3304046](3304046)) * Release please for release branch ([#10467](#10467)) ([38941bf](38941bf)) * Replace quadratic removal of `rc` instructions (noir-lang/noir#6705) ([3304046](3304046)) * Replace quadratic removal of rc instructions ([#10416](#10416)) ([9d833c5](9d833c5)) * Revert changes to `ValueMerger` and `Instruction::IfElse` (noir-lang/noir#6673) ([3304046](3304046)) * Show printable byte arrays as byte strings in SSA (noir-lang/noir#6709) ([3304046](3304046)) * Simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) ([3304046](3304046)) * **ssa:** Deduplicate intrinsics with predicates (noir-lang/noir#6615) ([3304046](3304046)) * **ssa:** Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) ([3304046](3304046)) * **ssa:** Loop invariant code motion (noir-lang/noir#6563) ([3304046](3304046)) * **ssa:** Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) ([3304046](3304046)) * **ssa:** Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) ([3304046](3304046)) * Staking integration ([#10403](#10403)) ([ecd6c4f](ecd6c4f)) * Standalone ssd ([#10317](#10317)) ([c324781](c324781)) * Switch to using an external noir implementation of Schnorr ([#10330](#10330)) ([6cbd375](6cbd375)) * Sync from aztec-packages (noir-lang/noir#6576) ([3304046](3304046)) * Sync from aztec-packages (noir-lang/noir#6634) ([3304046](3304046)) * Sync from aztec-packages (noir-lang/noir#6656) ([3304046](3304046)) * Terraform for alerting on metrics ([#10192](#10192)) ([05c9e5d](05c9e5d)), closes [#9956](#9956) * Test release network via ci workflow ([#10388](#10388)) ([e6060ec](e6060ec)), closes [#10383](#10383) * **tooling:** Skip program transformation when loaded from cache (noir-lang/noir#6689) ([3304046](3304046)) * Try to inline brillig calls with all constant arguments (noir-lang/noir#6548) ([3304046](3304046)) * Ultra rollup flows ([#10162](#10162)) ([c53f4cf](c53f4cf)) * Zip and propagate private logs ([#10210](#10210)) ([5c32747](5c32747)) * Zip and silo and propagate private logs ([#10308](#10308)) ([90d4385](90d4385)) ### Bug Fixes * Add helm ([#10454](#10454)) ([2eb9ade](2eb9ade)) * Add secret ([#10453](#10453)) ([95601df](95601df)) * Add type ([#10452](#10452)) ([cd9699f](cd9699f)) * Allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) ([3304046](3304046)) * Always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) ([3304046](3304046)) * Await block unwind when a reorg happens ([#10380](#10380)) ([5a02480](5a02480)) * Bbup cleanup and fix ([#10067](#10067)) ([0ff8177](0ff8177)) * Bootstrapping devnet ([#10396](#10396)) ([f3c7294](f3c7294)) * Bot waits for pxe synch ([#10316](#10316)) ([ebd4165](ebd4165)) * Consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) ([3304046](3304046)) * Correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) ([3304046](3304046)) * Correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) ([3304046](3304046)) * Correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) ([3304046](3304046)) * Disallow `#[export]` on associated methods (noir-lang/noir#6626) ([3304046](3304046)) * Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) ([3304046](3304046)) * Don't pass default value for --node-url ([#10427](#10427)) ([5299481](5299481)), closes [#10419](#10419) * Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) ([3304046](3304046)) * Don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) ([3304046](3304046)) * Get node info from a PXE ([#10420](#10420)) ([ed972f3](ed972f3)) * Increase timeouts ([#10412](#10412)) ([d3b8838](d3b8838)) * LSP auto-import text indent (noir-lang/noir#6699) ([3304046](3304046)) * LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) ([3304046](3304046)) * **LSP:** Use generic self type to narrow down methods to complete (noir-lang/noir#6617) ([3304046](3304046)) * Move spartan-script tf to spartan, use file in bucket ([#10395](#10395)) ([5cef628](5cef628)) * Nit ([#10392](#10392)) ([d6985a8](d6985a8)) * Optimize array ref counts to copy arrays much less often (noir-lang/noir#6685) ([3304046](3304046)) * **p2p:** Override msg Id ([#10415](#10415)) ([990d11b](990d11b)) * Parse a bit more SSA stuff (noir-lang/noir#6599) ([3304046](3304046)) * Preserve newlines between comments when formatting statements (noir-lang/noir#6601) ([3304046](3304046)) * Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) ([3304046](3304046)) * **prover:** Handle starting blocks out of order in prover ([#10350](#10350)) ([9106102](9106102)) * Publicly register contract classes ([#10385](#10385)) ([94e6e1a](94e6e1a)) * Remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) ([3304046](3304046)) * Revert "feat: Avoid inserting an empty leaf in indexed trees on update" ([#10319](#10319)) ([887c011](887c011)) * Revert "feat: zip and propagate private logs" ([#10302](#10302)) ([9d70728](9d70728)) * Safely insert sibling paths ([#10423](#10423)) ([41f7645](41f7645)) * **ssa:** Don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) ([3304046](3304046)) * **ssa:** Remove RC tracker in DIE (noir-lang/noir#6700) ([3304046](3304046)) * **ssa:** Track all local allocations during flattening (noir-lang/noir#6619) ([3304046](3304046)) * Tf vars ([#10457](#10457)) ([00aaef6](00aaef6)) * Typo in u128 docs (noir-lang/noir#6711) ([3304046](3304046)) * Url in bbup install ([#10456](#10456)) ([1b0dfb7](1b0dfb7)) * Use correct type for attribute arguments (noir-lang/noir#6640) ([3304046](3304046)) * Used signed division for signed modulo (noir-lang/noir#6635) ([3304046](3304046)) * Witness changes in file sponge.hpp ([#10345](#10345)) ([4a38edf](4a38edf)) ### Miscellaneous * Add `ram_blowup_regression` to memory report (noir-lang/noir#6683) ([3304046](3304046)) * Add panic for compiler error described in [#6620](#6620) (noir-lang/noir#6621) ([3304046](3304046)) * **avm:** Fake verification routine for avm recursion in public base rollup ([#10382](#10382)) ([a1e5966](a1e5966)), closes [#10243](#10243) * **avm:** Remove function selector type of getenv opcode ([#10406](#10406)) ([38c0c14](38c0c14)), closes [#9396](#9396) * Batch archiver requests ([#10442](#10442)) ([9443e8e](9443e8e)) * Boot node has fixed peer id private key ([#10352](#10352)) ([cae1203](cae1203)) * Bump alert in gossip_network.test.ts ([#10430](#10430)) ([2c2169b](2c2169b)) * Centralized helm flag for proving and clean release tf deploys ([#10221](#10221)) ([c2c1744](c2c1744)) * **ci:** Move playwright install to `+deps` ([#10293](#10293)) ([d7bd306](d7bd306)) * Clean up archiver logs ([#10429](#10429)) ([4fcbc59](4fcbc59)) * Consolidate some CI workflows to reduce sprawl (noir-lang/noir#6696) ([3304046](3304046)) * Contracts on a diet ([#10389](#10389)) ([dddb008](dddb008)) * Deduplicate constants across blocks ([#9972](#9972)) ([69bb64f](69bb64f)) * Derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) ([3304046](3304046)) * **docs:** Remove additional `DEBUG` references, add note on `LOG_LEVEL`s ([#10434](#10434)) ([e1e5906](e1e5906)) * Don't generate proofs of verifier circuits in test ([#10405](#10405)) ([c00ebdd](c00ebdd)) * Fix sassy-salamander chores v1 ([#10218](#10218)) ([7227b48](7227b48)), closes [#10074](#10074) [#10075](#10075) [#10077](#10077) * Fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) ([3304046](3304046)) * Fix traces endpoint url in native testnet script ([#10309](#10309)) ([2367c62](2367c62)) * Fix typo in test name (noir-lang/noir#6589) ([3304046](3304046)) * Fix warning when compiling `noir_wasm` (noir-lang/noir#6686) ([3304046](3304046)) * Ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) ([3304046](3304046)) * Improve error message of `&T` (noir-lang/noir#6633) ([3304046](3304046)) * Log manual contract class registrations ([#10354](#10354)) ([da1470d](da1470d)) * Making bbup a shell script ([#10426](#10426)) ([1c29554](1c29554)) * **network_test.sh:** Work around 143 by disabling stern ([#10436](#10436)) ([64f6dad](64f6dad)) * Parallelise construction of perturbator coefficients at each level ([#10304](#10304)) ([ba335bd](ba335bd)) * Parallelise inverse polynomial construction for lookup relations ([#10413](#10413)) ([427cf59](427cf59)) * Pin foundry version in CI (noir-lang/noir#6642) ([3304046](3304046)) * Public inputs in unit tests with proving were incorrectly set ([#10300](#10300)) ([0311bf3](0311bf3)) * Pull out cfg simplification changes ([#10279](#10279)) ([c48ae90](c48ae90)) * Pull out constant brillig inliner ([#10291](#10291)) ([0577c1a](0577c1a)) * Pull out loop invariant optimization ([#10277](#10277)) ([94cba37](94cba37)) * Pull out sync changes ([#10292](#10292)) ([49f80b3](49f80b3)) * Random typos ([#10393](#10393)) ([ed47a42](ed47a42)) * Redo typo PR by Dimitrolito ([#10364](#10364)) ([da809c5](da809c5)) * Redo typo PR by Dimitrolito (noir-lang/noir#6614) ([3304046](3304046)) * Redo typo PR by donatik27 (noir-lang/noir#6575) ([3304046](3304046)) * Redo typo PR by leopardracer ([#10363](#10363)) ([0d1b722](0d1b722)) * Redo typo PR by leopardracer ([#10444](#10444)) ([3653c4c](3653c4c)) * Refactor foreign call executors (noir-lang/noir#6659) ([3304046](3304046)) * Refactor indexed tree to use traits ([#10361](#10361)) ([621cbaf](621cbaf)) * Refactor poseidon2 (noir-lang/noir#6655) ([3304046](3304046)) * Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) ([3304046](3304046)) * Remove `ec` module from stdlib (noir-lang/noir#6612) ([3304046](3304046)) * Remove debug and winston in favor of pino ([#10355](#10355)) ([c246aba](c246aba)) * Remove eddsa from stdlib (noir-lang/noir#6591) ([3304046](3304046)) * Remove inliner override for `reference_counts` test (noir-lang/noir#6714) ([3304046](3304046)) * Remove SchnorrVerify opcode ([#9897](#9897)) ([93cd323](93cd323)) * Remove temporary allocations from `num_bits` (noir-lang/noir#6600) ([3304046](3304046)) * Remove unused dep ([#10295](#10295)) ([2a07355](2a07355)) * Replace relative paths to noir-protocol-circuits ([8fd8236](8fd8236)) * Replace relative paths to noir-protocol-circuits ([5d11e24](5d11e24)) * Replace relative paths to noir-protocol-circuits ([e7a99f2](e7a99f2)) * Replace relative paths to noir-protocol-circuits ([2496118](2496118)) * Replace relative paths to noir-protocol-circuits ([d77dc96](d77dc96)) * Replace relative paths to noir-protocol-circuits ([46d12e3](46d12e3)) * Require types of globals to be specified (noir-lang/noir#6592) ([3304046](3304046)) * Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) ([3304046](3304046)) * Sassy network ([#10468](#10468)) ([92eb377](92eb377)) * Simplify otel config, 1val setup, fix pod dns, retries ([#10344](#10344)) ([be91d80](be91d80)) * Skip A->B B->A e2e_2_pxes test ([#10297](#10297)) ([b75bfd0](b75bfd0)) * Sync logging with jest ([#10459](#10459)) ([6e33cb9](6e33cb9)) * Typo in oracles how to (noir-lang/noir#6598) ([3304046](3304046)) * Update noir-bench-report version (noir-lang/noir#6675) ([3304046](3304046)) * Update pprof (noir-lang/noir#6710) ([3304046](3304046)) * Update release-please action (noir-lang/noir#6704) ([3304046](3304046)) * Use non default mnemonic for releases ([#10400](#10400)) ([bb5f364](bb5f364)) </details> <details><summary>barretenberg: 0.66.0</summary> ## [0.66.0](barretenberg-v0.65.2...barretenberg-v0.66.0) (2024-12-06) ### ⚠ BREAKING CHANGES * remove SchnorrVerify opcode ([#9897](#9897)) ### Features * Allow querying block number for tree indices ([#10332](#10332)) ([cf05a7a](cf05a7a)) * Avoid inserting an empty leaf in indexed trees on update ([#10281](#10281)) ([5a04ca8](5a04ca8)) * Avoid inserting an empty leaf in indexed trees on update ([#10334](#10334)) ([80fad45](80fad45)) * **bb:** Define std::hash for field ([#10312](#10312)) ([752bc59](752bc59)) * Client IVC API ([#10217](#10217)) ([cc54a1e](cc54a1e)) * Integrate verify_proof calls in mock protocol circuits ([#9253](#9253)) ([7ed89aa](7ed89aa)) * Manage enqueued calls & phases in AVM witgen ([#10310](#10310)) ([e7ebef8](e7ebef8)) * Mock IVC state from arbitrary acir IVC recursion constraints ([#10314](#10314)) ([ac7c0da](ac7c0da)) * Ultra rollup flows ([#10162](#10162)) ([c53f4cf](c53f4cf)) ### Bug Fixes * Bbup cleanup and fix ([#10067](#10067)) ([0ff8177](0ff8177)) * Revert "feat: Avoid inserting an empty leaf in indexed trees on update" ([#10319](#10319)) ([887c011](887c011)) * Url in bbup install ([#10456](#10456)) ([1b0dfb7](1b0dfb7)) * Witness changes in file sponge.hpp ([#10345](#10345)) ([4a38edf](4a38edf)) ### Miscellaneous * **avm:** Fake verification routine for avm recursion in public base rollup ([#10382](#10382)) ([a1e5966](a1e5966)), closes [#10243](#10243) * **avm:** Remove function selector type of getenv opcode ([#10406](#10406)) ([38c0c14](38c0c14)), closes [#9396](#9396) * Don't generate proofs of verifier circuits in test ([#10405](#10405)) ([c00ebdd](c00ebdd)) * Making bbup a shell script ([#10426](#10426)) ([1c29554](1c29554)) * Parallelise construction of perturbator coefficients at each level ([#10304](#10304)) ([ba335bd](ba335bd)) * Parallelise inverse polynomial construction for lookup relations ([#10413](#10413)) ([427cf59](427cf59)) * Public inputs in unit tests with proving were incorrectly set ([#10300](#10300)) ([0311bf3](0311bf3)) * Redo typo PR by Dimitrolito ([#10364](#10364)) ([da809c5](da809c5)) * Redo typo PR by leopardracer ([#10363](#10363)) ([0d1b722](0d1b722)) * Remove SchnorrVerify opcode ([#9897](#9897)) ([93cd323](93cd323)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.66.0</summary> ## [0.66.0](AztecProtocol/aztec-packages@aztec-package-v0.65.2...aztec-package-v0.66.0) (2024-12-06) ### ⚠ BREAKING CHANGES * Remove debug and winston in favor of pino ([#10355](AztecProtocol/aztec-packages#10355)) ### Features * Agent and broker expose OTEL metrics ([#10264](AztecProtocol/aztec-packages#10264)) ([c2c8cc6](AztecProtocol/aztec-packages@c2c8cc6)) * Epoch cache, do not attest if not in committee or from current proposer ([#10327](AztecProtocol/aztec-packages#10327)) ([9ebaa65](AztecProtocol/aztec-packages@9ebaa65)) * Staking integration ([#10403](AztecProtocol/aztec-packages#10403)) ([ecd6c4f](AztecProtocol/aztec-packages@ecd6c4f)) ### Miscellaneous * Remove debug and winston in favor of pino ([#10355](AztecProtocol/aztec-packages#10355)) ([c246aba](AztecProtocol/aztec-packages@c246aba)) </details> <details><summary>barretenberg.js: 0.66.0</summary> ## [0.66.0](AztecProtocol/aztec-packages@barretenberg.js-v0.65.2...barretenberg.js-v0.66.0) (2024-12-06) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.66.0</summary> ## [0.66.0](AztecProtocol/aztec-packages@aztec-packages-v0.65.2...aztec-packages-v0.66.0) (2024-12-06) ### ⚠ BREAKING CHANGES * remove `ec` module from stdlib (noir-lang/noir#6612) * Disallow `#[export]` on associated methods (noir-lang/noir#6626) * Require types of globals to be specified (noir-lang/noir#6592) * remove eddsa from stdlib (noir-lang/noir#6591) * Remove debug and winston in favor of pino ([#10355](AztecProtocol/aztec-packages#10355)) * remove SchnorrVerify opcode ([#9897](AztecProtocol/aztec-packages#9897)) ### Features * Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) ([3304046](AztecProtocol/aztec-packages@3304046)) * Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) ([3304046](AztecProtocol/aztec-packages@3304046)) * Add memory report into the CI (noir-lang/noir#6630) ([3304046](AztecProtocol/aztec-packages@3304046)) * Add workflow_call trigger to network-deploy ([#10451](AztecProtocol/aztec-packages#10451)) ([18254e6](AztecProtocol/aztec-packages@18254e6)) * Adding configurable data dir and p2p pk for testnet nodes ([#10422](AztecProtocol/aztec-packages#10422)) ([77b0039](AztecProtocol/aztec-packages@77b0039)) * Agent and broker expose OTEL metrics ([#10264](AztecProtocol/aztec-packages#10264)) ([c2c8cc6](AztecProtocol/aztec-packages@c2c8cc6)) * Allow filtering which SSA passes are printed (noir-lang/noir#6636) ([3304046](AztecProtocol/aztec-packages@3304046)) * Allow ignoring test failures from foreign calls (noir-lang/noir#6660) ([3304046](AztecProtocol/aztec-packages@3304046)) * Allow querying block number for tree indices ([#10332](AztecProtocol/aztec-packages#10332)) ([cf05a7a](AztecProtocol/aztec-packages@cf05a7a)) * AMM ([#10153](AztecProtocol/aztec-packages#10153)) ([90668c3](AztecProtocol/aztec-packages@90668c3)) * Avoid incrementing reference counts in some cases (noir-lang/noir#6568) ([3304046](AztecProtocol/aztec-packages@3304046)) * Avoid inserting an empty leaf in indexed trees on update ([#10281](AztecProtocol/aztec-packages#10281)) ([5a04ca8](AztecProtocol/aztec-packages@5a04ca8)) * Avoid inserting an empty leaf in indexed trees on update ([#10334](AztecProtocol/aztec-packages#10334)) ([80fad45](AztecProtocol/aztec-packages@80fad45)) * **bb:** Define std::hash for field ([#10312](AztecProtocol/aztec-packages#10312)) ([752bc59](AztecProtocol/aztec-packages@752bc59)) * Better error message when trying to invoke struct function field (noir-lang/noir#6661) ([3304046](AztecProtocol/aztec-packages@3304046)) * Client IVC API ([#10217](AztecProtocol/aztec-packages#10217)) ([cc54a1e](AztecProtocol/aztec-packages@cc54a1e)) * **comptime:** Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) ([3304046](AztecProtocol/aztec-packages@3304046)) * Delete attestations older than a slot ([#10326](AztecProtocol/aztec-packages#10326)) ([24abcfe](AztecProtocol/aztec-packages@24abcfe)) * Deploy devnet to k8s ([#10449](AztecProtocol/aztec-packages#10449)) ([27506c1](AztecProtocol/aztec-packages@27506c1)) * Deploy networks via github actions ([#10381](AztecProtocol/aztec-packages#10381)) ([7e19b39](AztecProtocol/aztec-packages@7e19b39)) * **docs:** Applied structure feedback ([#9288](AztecProtocol/aztec-packages#9288)) ([5b0b721](AztecProtocol/aztec-packages@5b0b721)) * Epoch cache, do not attest if not in committee or from current proposer ([#10327](AztecProtocol/aztec-packages#10327)) ([9ebaa65](AztecProtocol/aztec-packages@9ebaa65)) * Gas Utils for L1 operations ([#9834](AztecProtocol/aztec-packages#9834)) ([17fa214](AztecProtocol/aztec-packages@17fa214)) * Improve parser recovery of constructor field with '::' instead of ':' (noir-lang/noir#6701) ([3304046](AztecProtocol/aztec-packages@3304046)) * Integrate verify_proof calls in mock protocol circuits ([#9253](AztecProtocol/aztec-packages#9253)) ([7ed89aa](AztecProtocol/aztec-packages@7ed89aa)) * Making testnet script write a docker compose file ([#10333](AztecProtocol/aztec-packages#10333)) ([be54cc3](AztecProtocol/aztec-packages@be54cc3)) * Manage enqueued calls & phases in AVM witgen ([#10310](AztecProtocol/aztec-packages#10310)) ([e7ebef8](AztecProtocol/aztec-packages@e7ebef8)) * Mock IVC state from arbitrary acir IVC recursion constraints ([#10314](AztecProtocol/aztec-packages#10314)) ([ac7c0da](AztecProtocol/aztec-packages@ac7c0da)) * Optionally emit public bytecode ([#10365](AztecProtocol/aztec-packages#10365)) ([84ff623](AztecProtocol/aztec-packages@84ff623)) * **p2p:** Persist node private p2p keys ([#10324](AztecProtocol/aztec-packages#10324)) ([1c32eda](AztecProtocol/aztec-packages@1c32eda)) * **p2p:** Snappy compress p2p messages ([#10417](AztecProtocol/aztec-packages#10417)) ([c643a54](AztecProtocol/aztec-packages@c643a54)) * **perf:** Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) ([3304046](AztecProtocol/aztec-packages@3304046)) * Process blocks in parallel during epoch proving ([#10263](AztecProtocol/aztec-packages#10263)) ([a9d418c](AztecProtocol/aztec-packages@a9d418c)) * Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) ([3304046](AztecProtocol/aztec-packages@3304046)) * Release please for release branch ([#10467](AztecProtocol/aztec-packages#10467)) ([38941bf](AztecProtocol/aztec-packages@38941bf)) * Replace quadratic removal of `rc` instructions (noir-lang/noir#6705) ([3304046](AztecProtocol/aztec-packages@3304046)) * Replace quadratic removal of rc instructions ([#10416](AztecProtocol/aztec-packages#10416)) ([9d833c5](AztecProtocol/aztec-packages@9d833c5)) * Revert changes to `ValueMerger` and `Instruction::IfElse` (noir-lang/noir#6673) ([3304046](AztecProtocol/aztec-packages@3304046)) * Show printable byte arrays as byte strings in SSA (noir-lang/noir#6709) ([3304046](AztecProtocol/aztec-packages@3304046)) * Simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) ([3304046](AztecProtocol/aztec-packages@3304046)) * **ssa:** Deduplicate intrinsics with predicates (noir-lang/noir#6615) ([3304046](AztecProtocol/aztec-packages@3304046)) * **ssa:** Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) ([3304046](AztecProtocol/aztec-packages@3304046)) * **ssa:** Loop invariant code motion (noir-lang/noir#6563) ([3304046](AztecProtocol/aztec-packages@3304046)) * **ssa:** Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) ([3304046](AztecProtocol/aztec-packages@3304046)) * **ssa:** Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) ([3304046](AztecProtocol/aztec-packages@3304046)) * Staking integration ([#10403](AztecProtocol/aztec-packages#10403)) ([ecd6c4f](AztecProtocol/aztec-packages@ecd6c4f)) * Standalone ssd ([#10317](AztecProtocol/aztec-packages#10317)) ([c324781](AztecProtocol/aztec-packages@c324781)) * Switch to using an external noir implementation of Schnorr ([#10330](AztecProtocol/aztec-packages#10330)) ([6cbd375](AztecProtocol/aztec-packages@6cbd375)) * Sync from aztec-packages (noir-lang/noir#6576) ([3304046](AztecProtocol/aztec-packages@3304046)) * Sync from aztec-packages (noir-lang/noir#6634) ([3304046](AztecProtocol/aztec-packages@3304046)) * Sync from aztec-packages (noir-lang/noir#6656) ([3304046](AztecProtocol/aztec-packages@3304046)) * Terraform for alerting on metrics ([#10192](AztecProtocol/aztec-packages#10192)) ([05c9e5d](AztecProtocol/aztec-packages@05c9e5d)), closes [#9956](AztecProtocol/aztec-packages#9956) * Test release network via ci workflow ([#10388](AztecProtocol/aztec-packages#10388)) ([e6060ec](AztecProtocol/aztec-packages@e6060ec)), closes [#10383](AztecProtocol/aztec-packages#10383) * **tooling:** Skip program transformation when loaded from cache (noir-lang/noir#6689) ([3304046](AztecProtocol/aztec-packages@3304046)) * Try to inline brillig calls with all constant arguments (noir-lang/noir#6548) ([3304046](AztecProtocol/aztec-packages@3304046)) * Ultra rollup flows ([#10162](AztecProtocol/aztec-packages#10162)) ([c53f4cf](AztecProtocol/aztec-packages@c53f4cf)) * Zip and propagate private logs ([#10210](AztecProtocol/aztec-packages#10210)) ([5c32747](AztecProtocol/aztec-packages@5c32747)) * Zip and silo and propagate private logs ([#10308](AztecProtocol/aztec-packages#10308)) ([90d4385](AztecProtocol/aztec-packages@90d4385)) ### Bug Fixes * Add helm ([#10454](AztecProtocol/aztec-packages#10454)) ([2eb9ade](AztecProtocol/aztec-packages@2eb9ade)) * Add secret ([#10453](AztecProtocol/aztec-packages#10453)) ([95601df](AztecProtocol/aztec-packages@95601df)) * Add type ([#10452](AztecProtocol/aztec-packages#10452)) ([cd9699f](AztecProtocol/aztec-packages@cd9699f)) * Allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) ([3304046](AztecProtocol/aztec-packages@3304046)) * Always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) ([3304046](AztecProtocol/aztec-packages@3304046)) * Await block unwind when a reorg happens ([#10380](AztecProtocol/aztec-packages#10380)) ([5a02480](AztecProtocol/aztec-packages@5a02480)) * Bbup cleanup and fix ([#10067](AztecProtocol/aztec-packages#10067)) ([0ff8177](AztecProtocol/aztec-packages@0ff8177)) * Bootstrapping devnet ([#10396](AztecProtocol/aztec-packages#10396)) ([f3c7294](AztecProtocol/aztec-packages@f3c7294)) * Bot waits for pxe synch ([#10316](AztecProtocol/aztec-packages#10316)) ([ebd4165](AztecProtocol/aztec-packages@ebd4165)) * Consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) ([3304046](AztecProtocol/aztec-packages@3304046)) * Correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) ([3304046](AztecProtocol/aztec-packages@3304046)) * Correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) ([3304046](AztecProtocol/aztec-packages@3304046)) * Correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) ([3304046](AztecProtocol/aztec-packages@3304046)) * Disallow `#[export]` on associated methods (noir-lang/noir#6626) ([3304046](AztecProtocol/aztec-packages@3304046)) * Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) ([3304046](AztecProtocol/aztec-packages@3304046)) * Don't pass default value for --node-url ([#10427](AztecProtocol/aztec-packages#10427)) ([5299481](AztecProtocol/aztec-packages@5299481)), closes [#10419](AztecProtocol/aztec-packages#10419) * Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) ([3304046](AztecProtocol/aztec-packages@3304046)) * Don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) ([3304046](AztecProtocol/aztec-packages@3304046)) * Get node info from a PXE ([#10420](AztecProtocol/aztec-packages#10420)) ([ed972f3](AztecProtocol/aztec-packages@ed972f3)) * Increase timeouts ([#10412](AztecProtocol/aztec-packages#10412)) ([d3b8838](AztecProtocol/aztec-packages@d3b8838)) * LSP auto-import text indent (noir-lang/noir#6699) ([3304046](AztecProtocol/aztec-packages@3304046)) * LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) ([3304046](AztecProtocol/aztec-packages@3304046)) * **LSP:** Use generic self type to narrow down methods to complete (noir-lang/noir#6617) ([3304046](AztecProtocol/aztec-packages@3304046)) * Move spartan-script tf to spartan, use file in bucket ([#10395](AztecProtocol/aztec-packages#10395)) ([5cef628](AztecProtocol/aztec-packages@5cef628)) * Nit ([#10392](AztecProtocol/aztec-packages#10392)) ([d6985a8](AztecProtocol/aztec-packages@d6985a8)) * Optimize array ref counts to copy arrays much less often (noir-lang/noir#6685) ([3304046](AztecProtocol/aztec-packages@3304046)) * **p2p:** Override msg Id ([#10415](AztecProtocol/aztec-packages#10415)) ([990d11b](AztecProtocol/aztec-packages@990d11b)) * Parse a bit more SSA stuff (noir-lang/noir#6599) ([3304046](AztecProtocol/aztec-packages@3304046)) * Preserve newlines between comments when formatting statements (noir-lang/noir#6601) ([3304046](AztecProtocol/aztec-packages@3304046)) * Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) ([3304046](AztecProtocol/aztec-packages@3304046)) * **prover:** Handle starting blocks out of order in prover ([#10350](AztecProtocol/aztec-packages#10350)) ([9106102](AztecProtocol/aztec-packages@9106102)) * Publicly register contract classes ([#10385](AztecProtocol/aztec-packages#10385)) ([94e6e1a](AztecProtocol/aztec-packages@94e6e1a)) * Remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) ([3304046](AztecProtocol/aztec-packages@3304046)) * Revert "feat: Avoid inserting an empty leaf in indexed trees on update" ([#10319](AztecProtocol/aztec-packages#10319)) ([887c011](AztecProtocol/aztec-packages@887c011)) * Revert "feat: zip and propagate private logs" ([#10302](AztecProtocol/aztec-packages#10302)) ([9d70728](AztecProtocol/aztec-packages@9d70728)) * Safely insert sibling paths ([#10423](AztecProtocol/aztec-packages#10423)) ([41f7645](AztecProtocol/aztec-packages@41f7645)) * **ssa:** Don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) ([3304046](AztecProtocol/aztec-packages@3304046)) * **ssa:** Remove RC tracker in DIE (noir-lang/noir#6700) ([3304046](AztecProtocol/aztec-packages@3304046)) * **ssa:** Track all local allocations during flattening (noir-lang/noir#6619) ([3304046](AztecProtocol/aztec-packages@3304046)) * Tf vars ([#10457](AztecProtocol/aztec-packages#10457)) ([00aaef6](AztecProtocol/aztec-packages@00aaef6)) * Typo in u128 docs (noir-lang/noir#6711) ([3304046](AztecProtocol/aztec-packages@3304046)) * Url in bbup install ([#10456](AztecProtocol/aztec-packages#10456)) ([1b0dfb7](AztecProtocol/aztec-packages@1b0dfb7)) * Use correct type for attribute arguments (noir-lang/noir#6640) ([3304046](AztecProtocol/aztec-packages@3304046)) * Used signed division for signed modulo (noir-lang/noir#6635) ([3304046](AztecProtocol/aztec-packages@3304046)) * Witness changes in file sponge.hpp ([#10345](AztecProtocol/aztec-packages#10345)) ([4a38edf](AztecProtocol/aztec-packages@4a38edf)) ### Miscellaneous * Add `ram_blowup_regression` to memory report (noir-lang/noir#6683) ([3304046](AztecProtocol/aztec-packages@3304046)) * Add panic for compiler error described in [#6620](AztecProtocol/aztec-packages#6620) (noir-lang/noir#6621) ([3304046](AztecProtocol/aztec-packages@3304046)) * **avm:** Fake verification routine for avm recursion in public base rollup ([#10382](AztecProtocol/aztec-packages#10382)) ([a1e5966](AztecProtocol/aztec-packages@a1e5966)), closes [#10243](AztecProtocol/aztec-packages#10243) * **avm:** Remove function selector type of getenv opcode ([#10406](AztecProtocol/aztec-packages#10406)) ([38c0c14](AztecProtocol/aztec-packages@38c0c14)), closes [#9396](AztecProtocol/aztec-packages#9396) * Batch archiver requests ([#10442](AztecProtocol/aztec-packages#10442)) ([9443e8e](AztecProtocol/aztec-packages@9443e8e)) * Boot node has fixed peer id private key ([#10352](AztecProtocol/aztec-packages#10352)) ([cae1203](AztecProtocol/aztec-packages@cae1203)) * Bump alert in gossip_network.test.ts ([#10430](AztecProtocol/aztec-packages#10430)) ([2c2169b](AztecProtocol/aztec-packages@2c2169b)) * Centralized helm flag for proving and clean release tf deploys ([#10221](AztecProtocol/aztec-packages#10221)) ([c2c1744](AztecProtocol/aztec-packages@c2c1744)) * **ci:** Move playwright install to `+deps` ([#10293](AztecProtocol/aztec-packages#10293)) ([d7bd306](AztecProtocol/aztec-packages@d7bd306)) * Clean up archiver logs ([#10429](AztecProtocol/aztec-packages#10429)) ([4fcbc59](AztecProtocol/aztec-packages@4fcbc59)) * Consolidate some CI workflows to reduce sprawl (noir-lang/noir#6696) ([3304046](AztecProtocol/aztec-packages@3304046)) * Contracts on a diet ([#10389](AztecProtocol/aztec-packages#10389)) ([dddb008](AztecProtocol/aztec-packages@dddb008)) * Deduplicate constants across blocks ([#9972](AztecProtocol/aztec-packages#9972)) ([69bb64f](AztecProtocol/aztec-packages@69bb64f)) * Derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) ([3304046](AztecProtocol/aztec-packages@3304046)) * **docs:** Remove additional `DEBUG` references, add note on `LOG_LEVEL`s ([#10434](AztecProtocol/aztec-packages#10434)) ([e1e5906](AztecProtocol/aztec-packages@e1e5906)) * Don't generate proofs of verifier circuits in test ([#10405](AztecProtocol/aztec-packages#10405)) ([c00ebdd](AztecProtocol/aztec-packages@c00ebdd)) * Fix sassy-salamander chores v1 ([#10218](AztecProtocol/aztec-packages#10218)) ([7227b48](AztecProtocol/aztec-packages@7227b48)), closes [#10074](AztecProtocol/aztec-packages#10074) [#10075](AztecProtocol/aztec-packages#10075) [#10077](AztecProtocol/aztec-packages#10077) * Fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) ([3304046](AztecProtocol/aztec-packages@3304046)) * Fix traces endpoint url in native testnet script ([#10309](AztecProtocol/aztec-packages#10309)) ([2367c62](AztecProtocol/aztec-packages@2367c62)) * Fix typo in test name (noir-lang/noir#6589) ([3304046](AztecProtocol/aztec-packages@3304046)) * Fix warning when compiling `noir_wasm` (noir-lang/noir#6686) ([3304046](AztecProtocol/aztec-packages@3304046)) * Ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) ([3304046](AztecProtocol/aztec-packages@3304046)) * Improve error message of `&T` (noir-lang/noir#6633) ([3304046](AztecProtocol/aztec-packages@3304046)) * Log manual contract class registrations ([#10354](AztecProtocol/aztec-packages#10354)) ([da1470d](AztecProtocol/aztec-packages@da1470d)) * Making bbup a shell script ([#10426](AztecProtocol/aztec-packages#10426)) ([1c29554](AztecProtocol/aztec-packages@1c29554)) * **network_test.sh:** Work around 143 by disabling stern ([#10436](AztecProtocol/aztec-packages#10436)) ([64f6dad](AztecProtocol/aztec-packages@64f6dad)) * Parallelise construction of perturbator coefficients at each level ([#10304](AztecProtocol/aztec-packages#10304)) ([ba335bd](AztecProtocol/aztec-packages@ba335bd)) * Parallelise inverse polynomial construction for lookup relations ([#10413](AztecProtocol/aztec-packages#10413)) ([427cf59](AztecProtocol/aztec-packages@427cf59)) * Pin foundry version in CI (noir-lang/noir#6642) ([3304046](AztecProtocol/aztec-packages@3304046)) * Public inputs in unit tests with proving were incorrectly set ([#10300](AztecProtocol/aztec-packages#10300)) ([0311bf3](AztecProtocol/aztec-packages@0311bf3)) * Pull out cfg simplification changes ([#10279](AztecProtocol/aztec-packages#10279)) ([c48ae90](AztecProtocol/aztec-packages@c48ae90)) * Pull out constant brillig inliner ([#10291](AztecProtocol/aztec-packages#10291)) ([0577c1a](AztecProtocol/aztec-packages@0577c1a)) * Pull out loop invariant optimization ([#10277](AztecProtocol/aztec-packages#10277)) ([94cba37](AztecProtocol/aztec-packages@94cba37)) * Pull out sync changes ([#10292](AztecProtocol/aztec-packages#10292)) ([49f80b3](AztecProtocol/aztec-packages@49f80b3)) * Random typos ([#10393](AztecProtocol/aztec-packages#10393)) ([ed47a42](AztecProtocol/aztec-packages@ed47a42)) * Redo typo PR by Dimitrolito ([#10364](AztecProtocol/aztec-packages#10364)) ([da809c5](AztecProtocol/aztec-packages@da809c5)) * Redo typo PR by Dimitrolito (noir-lang/noir#6614) ([3304046](AztecProtocol/aztec-packages@3304046)) * Redo typo PR by donatik27 (noir-lang/noir#6575) ([3304046](AztecProtocol/aztec-packages@3304046)) * Redo typo PR by leopardracer ([#10363](AztecProtocol/aztec-packages#10363)) ([0d1b722](AztecProtocol/aztec-packages@0d1b722)) * Redo typo PR by leopardracer ([#10444](AztecProtocol/aztec-packages#10444)) ([3653c4c](AztecProtocol/aztec-packages@3653c4c)) * Refactor foreign call executors (noir-lang/noir#6659) ([3304046](AztecProtocol/aztec-packages@3304046)) * Refactor indexed tree to use traits ([#10361](AztecProtocol/aztec-packages#10361)) ([621cbaf](AztecProtocol/aztec-packages@621cbaf)) * Refactor poseidon2 (noir-lang/noir#6655) ([3304046](AztecProtocol/aztec-packages@3304046)) * Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) ([3304046](AztecProtocol/aztec-packages@3304046)) * Remove `ec` module from stdlib (noir-lang/noir#6612) ([3304046](AztecProtocol/aztec-packages@3304046)) * Remove debug and winston in favor of pino ([#10355](AztecProtocol/aztec-packages#10355)) ([c246aba](AztecProtocol/aztec-packages@c246aba)) * Remove eddsa from stdlib (noir-lang/noir#6591) ([3304046](AztecProtocol/aztec-packages@3304046)) * Remove inliner override for `reference_counts` test (noir-lang/noir#6714) ([3304046](AztecProtocol/aztec-packages@3304046)) * Remove SchnorrVerify opcode ([#9897](AztecProtocol/aztec-packages#9897)) ([93cd323](AztecProtocol/aztec-packages@93cd323)) * Remove temporary allocations from `num_bits` (noir-lang/noir#6600) ([3304046](AztecProtocol/aztec-packages@3304046)) * Remove unused dep ([#10295](AztecProtocol/aztec-packages#10295)) ([2a07355](AztecProtocol/aztec-packages@2a07355)) * Replace relative paths to noir-protocol-circuits ([8fd8236](AztecProtocol/aztec-packages@8fd8236)) * Replace relative paths to noir-protocol-circuits ([5d11e24](AztecProtocol/aztec-packages@5d11e24)) * Replace relative paths to noir-protocol-circuits ([e7a99f2](AztecProtocol/aztec-packages@e7a99f2)) * Replace relative paths to noir-protocol-circuits ([2496118](AztecProtocol/aztec-packages@2496118)) * Replace relative paths to noir-protocol-circuits ([d77dc96](AztecProtocol/aztec-packages@d77dc96)) * Replace relative paths to noir-protocol-circuits ([46d12e3](AztecProtocol/aztec-packages@46d12e3)) * Require types of globals to be specified (noir-lang/noir#6592) ([3304046](AztecProtocol/aztec-packages@3304046)) * Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) ([3304046](AztecProtocol/aztec-packages@3304046)) * Sassy network ([#10468](AztecProtocol/aztec-packages#10468)) ([92eb377](AztecProtocol/aztec-packages@92eb377)) * Simplify otel config, 1val setup, fix pod dns, retries ([#10344](AztecProtocol/aztec-packages#10344)) ([be91d80](AztecProtocol/aztec-packages@be91d80)) * Skip A->B B->A e2e_2_pxes test ([#10297](AztecProtocol/aztec-packages#10297)) ([b75bfd0](AztecProtocol/aztec-packages@b75bfd0)) * Sync logging with jest ([#10459](AztecProtocol/aztec-packages#10459)) ([6e33cb9](AztecProtocol/aztec-packages@6e33cb9)) * Typo in oracles how to (noir-lang/noir#6598) ([3304046](AztecProtocol/aztec-packages@3304046)) * Update noir-bench-report version (noir-lang/noir#6675) ([3304046](AztecProtocol/aztec-packages@3304046)) * Update pprof (noir-lang/noir#6710) ([3304046](AztecProtocol/aztec-packages@3304046)) * Update release-please action (noir-lang/noir#6704) ([3304046](AztecProtocol/aztec-packages@3304046)) * Use non default mnemonic for releases ([#10400](AztecProtocol/aztec-packages#10400)) ([bb5f364](AztecProtocol/aztec-packages@bb5f364)) </details> <details><summary>barretenberg: 0.66.0</summary> ## [0.66.0](AztecProtocol/aztec-packages@barretenberg-v0.65.2...barretenberg-v0.66.0) (2024-12-06) ### ⚠ BREAKING CHANGES * remove SchnorrVerify opcode ([#9897](AztecProtocol/aztec-packages#9897)) ### Features * Allow querying block number for tree indices ([#10332](AztecProtocol/aztec-packages#10332)) ([cf05a7a](AztecProtocol/aztec-packages@cf05a7a)) * Avoid inserting an empty leaf in indexed trees on update ([#10281](AztecProtocol/aztec-packages#10281)) ([5a04ca8](AztecProtocol/aztec-packages@5a04ca8)) * Avoid inserting an empty leaf in indexed trees on update ([#10334](AztecProtocol/aztec-packages#10334)) ([80fad45](AztecProtocol/aztec-packages@80fad45)) * **bb:** Define std::hash for field ([#10312](AztecProtocol/aztec-packages#10312)) ([752bc59](AztecProtocol/aztec-packages@752bc59)) * Client IVC API ([#10217](AztecProtocol/aztec-packages#10217)) ([cc54a1e](AztecProtocol/aztec-packages@cc54a1e)) * Integrate verify_proof calls in mock protocol circuits ([#9253](AztecProtocol/aztec-packages#9253)) ([7ed89aa](AztecProtocol/aztec-packages@7ed89aa)) * Manage enqueued calls & phases in AVM witgen ([#10310](AztecProtocol/aztec-packages#10310)) ([e7ebef8](AztecProtocol/aztec-packages@e7ebef8)) * Mock IVC state from arbitrary acir IVC recursion constraints ([#10314](AztecProtocol/aztec-packages#10314)) ([ac7c0da](AztecProtocol/aztec-packages@ac7c0da)) * Ultra rollup flows ([#10162](AztecProtocol/aztec-packages#10162)) ([c53f4cf](AztecProtocol/aztec-packages@c53f4cf)) ### Bug Fixes * Bbup cleanup and fix ([#10067](AztecProtocol/aztec-packages#10067)) ([0ff8177](AztecProtocol/aztec-packages@0ff8177)) * Revert "feat: Avoid inserting an empty leaf in indexed trees on update" ([#10319](AztecProtocol/aztec-packages#10319)) ([887c011](AztecProtocol/aztec-packages@887c011)) * Url in bbup install ([#10456](AztecProtocol/aztec-packages#10456)) ([1b0dfb7](AztecProtocol/aztec-packages@1b0dfb7)) * Witness changes in file sponge.hpp ([#10345](AztecProtocol/aztec-packages#10345)) ([4a38edf](AztecProtocol/aztec-packages@4a38edf)) ### Miscellaneous * **avm:** Fake verification routine for avm recursion in public base rollup ([#10382](AztecProtocol/aztec-packages#10382)) ([a1e5966](AztecProtocol/aztec-packages@a1e5966)), closes [#10243](AztecProtocol/aztec-packages#10243) * **avm:** Remove function selector type of getenv opcode ([#10406](AztecProtocol/aztec-packages#10406)) ([38c0c14](AztecProtocol/aztec-packages@38c0c14)), closes [#9396](AztecProtocol/aztec-packages#9396) * Don't generate proofs of verifier circuits in test ([#10405](AztecProtocol/aztec-packages#10405)) ([c00ebdd](AztecProtocol/aztec-packages@c00ebdd)) * Making bbup a shell script ([#10426](AztecProtocol/aztec-packages#10426)) ([1c29554](AztecProtocol/aztec-packages@1c29554)) * Parallelise construction of perturbator coefficients at each level ([#10304](AztecProtocol/aztec-packages#10304)) ([ba335bd](AztecProtocol/aztec-packages@ba335bd)) * Parallelise inverse polynomial construction for lookup relations ([#10413](AztecProtocol/aztec-packages#10413)) ([427cf59](AztecProtocol/aztec-packages@427cf59)) * Public inputs in unit tests with proving were incorrectly set ([#10300](AztecProtocol/aztec-packages#10300)) ([0311bf3](AztecProtocol/aztec-packages@0311bf3)) * Redo typo PR by Dimitrolito ([#10364](AztecProtocol/aztec-packages#10364)) ([da809c5](AztecProtocol/aztec-packages@da809c5)) * Redo typo PR by leopardracer ([#10363](AztecProtocol/aztec-packages#10363)) ([0d1b722](AztecProtocol/aztec-packages@0d1b722)) * Remove SchnorrVerify opcode ([#9897](AztecProtocol/aztec-packages#9897)) ([93cd323](AztecProtocol/aztec-packages@93cd323)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Description
Problem*
Resolves #6669
Summary*
compile_cmd::compile_programs
now detects the case whennargo::ops::compile::compile_program
has the compiled artefact loaded from cache, rather than recompiled from scratch. When it's loaded from cache, it is assumed to have already gone through the rest of whatcompile_cmd::compile_programs
does, which is to applynargo::ops::transform_program
on it, which includes ACVM optimisations and setting the target expression width. If the current target expression width is the same as the one the package was compiled with, we can skip doing these steps again.That eliminates the risk of running an non-idempotent optimisation that changes our circuit from what has been persisted before. If somebody were to delete the artefacts and compile from scratch with the same nargo version, then again the transformations were only applied once, which should deterministically yield the same result.
Additional Context
What about compiled contracts?
Curiously
compile_cmd::compile_contracts
does not look for persisted artefacts, nor does it applynargo::ops::check_program
on the compiled circuits. This is consistent with how noir_wasm does it, but I'm not sure why these steps aren't done, since under the hood there are the same types involved in both cases.Added
Hash
to a lot of Brillig typesTo support the comparison between cached and compiled artefact I added
#[derive(Hash)]
to a lot of types that comprise aCompiledProgram
. Most of these implementedEq
, so that would have been another option. I didn't want to add abool
flag to the return value ofnoirc_driver::compile_main
to not have a breaking change in the API, although in retrospect I could have added a new method instead. Given that the types seem to implementEq
anyway, I don't see the harm in havingHash
as well, and it could be useful in implementing #6670NB this hash is different than the one we use to decide if we can reuse the artefact, which is based roughly on the AST, and doesn't include the transformations. We don't use the hash to detect whether the transformations result in the same hash, only to decide whether the cached version or a fresh one was returned.
What about Wasm?
The Wasm version doesn't use caching, so it will only apply the transformations once, never repeatedly.
Documentation*
Check one:
PR Checklist*
cargo fmt
on default settings.