0.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)
- remove SchnorrVerify opcode (#9897)
Features
- Add
array_refcount
andslice_refcount
builtins for debugging (noir-lang/noir#6584) (3304046) - Add
BoundedVec::from_parts
andBoundedVec::from_parts_unchecked
(noir-lang/noir#6691) (3304046) - Add memory report into the CI (noir-lang/noir#6630) (3304046)
- Add workflow_call trigger to network-deploy (#10451) (18254e6)
- Adding configurable data dir and p2p pk for testnet nodes (#10422) (77b0039)
- Agent and broker expose OTEL metrics (#10264) (c2c8cc6)
- Allow filtering which SSA passes are printed (noir-lang/noir#6636) (3304046)
- Allow ignoring test failures from foreign calls (noir-lang/noir#6660) (3304046)
- Allow querying block number for tree indices (#10332) (cf05a7a)
- AMM (#10153) (90668c3)
- Avoid incrementing reference counts in some cases (noir-lang/noir#6568) (3304046)
- Avoid inserting an empty leaf in indexed trees on update (#10281) (5a04ca8)
- Avoid inserting an empty leaf in indexed trees on update (#10334) (80fad45)
- bb: Define std::hash for field (#10312) (752bc59)
- Better error message when trying to invoke struct function field (noir-lang/noir#6661) (3304046)
- Client IVC API (#10217) (cc54a1e)
- comptime: Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) (3304046)
- Delete attestations older than a slot (#10326) (24abcfe)
- Deploy devnet to k8s (#10449) (27506c1)
- Deploy networks via github actions (#10381) (7e19b39)
- docs: Applied structure feedback (#9288) (5b0b721)
- Epoch cache, do not attest if not in committee or from current proposer (#10327) (9ebaa65)
- Gas Utils for L1 operations (#9834) (17fa214)
- Improve parser recovery of constructor field with '::' instead of ':' (noir-lang/noir#6701) (3304046)
- Integrate verify_proof calls in mock protocol circuits (#9253) (7ed89aa)
- Making testnet script write a docker compose file (#10333) (be54cc3)
- Manage enqueued calls & phases in AVM witgen (#10310) (e7ebef8)
- Mock IVC state from arbitrary acir IVC recursion constraints (#10314) (ac7c0da)
- Optionally emit public bytecode (#10365) (84ff623)
- p2p: Persist node private p2p keys (#10324) (1c32eda)
- p2p: Snappy compress p2p messages (#10417) (c643a54)
- perf: Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) (3304046)
- Process blocks in parallel during epoch proving (#10263) (a9d418c)
- Reduce memory consumption by storing array length as
u32
during SSA (noir-lang/noir#6606) (3304046) - Release please for release branch (#10467) (38941bf)
- Replace quadratic removal of
rc
instructions (noir-lang/noir#6705) (3304046) - Replace quadratic removal of rc instructions (#10416) (9d833c5)
- Revert changes to
ValueMerger
andInstruction::IfElse
(noir-lang/noir#6673) (3304046) - Show printable byte arrays as byte strings in SSA (noir-lang/noir#6709) (3304046)
- Simplify
jmpif
s by reversing branches if condition is negated (noir-lang/noir#5891) (3304046) - ssa: Deduplicate intrinsics with predicates (noir-lang/noir#6615) (3304046)
- ssa: Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) (3304046)
- ssa: Loop invariant code motion (noir-lang/noir#6563) (3304046)
- ssa: Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) (3304046)
- ssa: Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) (3304046)
- Staking integration (#10403) (ecd6c4f)
- Standalone ssd (#10317) (c324781)
- Switch to using an external noir implementation of Schnorr (#10330) (6cbd375)
- Sync from aztec-packages (noir-lang/noir#6576) (3304046)
- Sync from aztec-packages (noir-lang/noir#6634) (3304046)
- Sync from aztec-packages (noir-lang/noir#6656) (3304046)
- Terraform for alerting on metrics (#10192) (05c9e5d), closes #9956
- Test release network via ci workflow (#10388) (e6060ec), closes #10383
- tooling: Skip program transformation when loaded from cache (noir-lang/noir#6689) (3304046)
- Try to inline brillig calls with all constant arguments (noir-lang/noir#6548) (3304046)
- Ultra rollup flows (#10162) (c53f4cf)
- Zip and propagate private logs (#10210) (5c32747)
- Zip and silo and propagate private logs (#10308) (90d4385)
Bug Fixes
- Add helm (#10454) (2eb9ade)
- Add secret (#10453) (95601df)
- Add type (#10452) (cd9699f)
- Allow multiple
_
parameters, and disallow_
as an expression you can read from (noir-lang/noir#6657) (3304046) - Always return an array of
u8
s when simplifyingIntrinsic::ToRadix
calls (noir-lang/noir#6663) (3304046) - Await block unwind when a reorg happens (#10380) (5a02480)
- Bbup cleanup and fix (#10067) (0ff8177)
- Bootstrapping devnet (#10396) (f3c7294)
- Bot waits for pxe synch (#10316) (ebd4165)
- Consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) (3304046)
- Correct signed integer handling in
noirc_abi
(noir-lang/noir#6638) (3304046) - Correct type when simplifying
derive_pedersen_generators
(noir-lang/noir#6579) (3304046) - Correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) (3304046)
- Disallow
#[export]
on associated methods (noir-lang/noir#6626) (3304046) - Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) (3304046)
- Don't pass default value for --node-url (#10427) (5299481), closes #10419
- Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) (3304046)
- Don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) (3304046)
- Get node info from a PXE (#10420) (ed972f3)
- Increase timeouts (#10412) (d3b8838)
- LSP auto-import text indent (noir-lang/noir#6699) (3304046)
- LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) (3304046)
- LSP: Use generic self type to narrow down methods to complete (noir-lang/noir#6617) (3304046)
- Move spartan-script tf to spartan, use file in bucket (#10395) (5cef628)
- Nit (#10392) (d6985a8)
- Optimize array ref counts to copy arrays much less often (noir-lang/noir#6685) (3304046)
- p2p: Override msg Id (#10415) (990d11b)
- Parse a bit more SSA stuff (noir-lang/noir#6599) (3304046)
- Preserve newlines between comments when formatting statements (noir-lang/noir#6601) (3304046)
- Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) (3304046)
- prover: Handle starting blocks out of order in prover (#10350) (9106102)
- Publicly register contract classes (#10385) (94e6e1a)
- Remove
compiler_version
from newNargo.toml
(noir-lang/noir#6590) (3304046) - Revert "feat: Avoid inserting an empty leaf in indexed trees on update" (#10319) (887c011)
- Revert "feat: zip and propagate private logs" (#10302) (9d70728)
- Safely insert sibling paths (#10423) (41f7645)
- ssa: Don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) (3304046)
- ssa: Remove RC tracker in DIE (noir-lang/noir#6700) (3304046)
- ssa: Track all local allocations during flattening (noir-lang/noir#6619) (3304046)
- Tf vars (#10457) (00aaef6)
- Typo in u128 docs (noir-lang/noir#6711) (3304046)
- Url in bbup install (#10456) (1b0dfb7)
- Use correct type for attribute arguments (noir-lang/noir#6640) (3304046)
- Used signed division for signed modulo (noir-lang/noir#6635) (3304046)
- Witness changes in file sponge.hpp (#10345) (4a38edf)
Miscellaneous
- Add
ram_blowup_regression
to memory report (noir-lang/noir#6683) (3304046) - Add panic for compiler error described in #6620 (noir-lang/noir#6621) (3304046)
- avm: Fake verification routine for avm recursion in public base rollup (#10382) (a1e5966), closes #10243
- avm: Remove function selector type of getenv opcode (#10406) (38c0c14), closes #9396
- Batch archiver requests (#10442) (9443e8e)
- Boot node has fixed peer id private key (#10352) (cae1203)
- Bump alert in gossip_network.test.ts (#10430) (2c2169b)
- Centralized helm flag for proving and clean release tf deploys (#10221) (c2c1744)
- ci: Move playwright install to
+deps
(#10293) (d7bd306) - Clean up archiver logs (#10429) (4fcbc59)
- Consolidate some CI workflows to reduce sprawl (noir-lang/noir#6696) (3304046)
- Contracts on a diet (#10389) (dddb008)
- Deduplicate constants across blocks (#9972) (69bb64f)
- Derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) (3304046)
- docs: Remove additional
DEBUG
references, add note onLOG_LEVEL
s (#10434) (e1e5906) - Don't generate proofs of verifier circuits in test (#10405) (c00ebdd)
- Fix sassy-salamander chores v1 (#10218) (7227b48), closes #10074 #10075 #10077
- Fix tests in
noirc_abi_wasm
(noir-lang/noir#6688) (3304046) - Fix traces endpoint url in native testnet script (#10309) (2367c62)
- Fix typo in test name (noir-lang/noir#6589) (3304046)
- Fix warning when compiling
noir_wasm
(noir-lang/noir#6686) (3304046) - Ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) (3304046)
- Improve error message of
&T
(noir-lang/noir#6633) (3304046) - Log manual contract class registrations (#10354) (da1470d)
- Making bbup a shell script (#10426) (1c29554)
- network_test.sh: Work around 143 by disabling stern (#10436) (64f6dad)
- Parallelise construction of perturbator coefficients at each level (#10304) (ba335bd)
- Parallelise inverse polynomial construction for lookup relations (#10413) (427cf59)
- Pin foundry version in CI (noir-lang/noir#6642) (3304046)
- Public inputs in unit tests with proving were incorrectly set (#10300) (0311bf3)
- Pull out cfg simplification changes (#10279) (c48ae90)
- Pull out constant brillig inliner (#10291) (0577c1a)
- Pull out loop invariant optimization (#10277) (94cba37)
- Pull out sync changes (#10292) (49f80b3)
- Random typos (#10393) (ed47a42)
- Redo typo PR by Dimitrolito (#10364) (da809c5)
- Redo typo PR by Dimitrolito (noir-lang/noir#6614) (3304046)
- Redo typo PR by donatik27 (noir-lang/noir#6575) (3304046)
- Redo typo PR by leopardracer (#10363) (0d1b722)
- Redo typo PR by leopardracer (#10444) (3653c4c)
- Refactor foreign call executors (noir-lang/noir#6659) (3304046)
- Refactor indexed tree to use traits (#10361) (621cbaf)
- Refactor poseidon2 (noir-lang/noir#6655) (3304046)
- Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) (3304046)
- Remove
ec
module from stdlib (noir-lang/noir#6612) (3304046) - Remove debug and winston in favor of pino (#10355) (c246aba)
- Remove eddsa from stdlib (noir-lang/noir#6591) (3304046)
- Remove inliner override for
reference_counts
test (noir-lang/noir#6714) (3304046) - Remove SchnorrVerify opcode (#9897) (93cd323)
- Remove temporary allocations from
num_bits
(noir-lang/noir#6600) (3304046) - Remove unused dep (#10295) (2a07355)
- Replace relative paths to noir-protocol-circuits (8fd8236)
- Replace relative paths to noir-protocol-circuits (5d11e24)
- Replace relative paths to noir-protocol-circuits (e7a99f2)
- Replace relative paths to noir-protocol-circuits (2496118)
- Replace relative paths to noir-protocol-circuits (d77dc96)
- Replace relative paths to noir-protocol-circuits (46d12e3)
- Require types of globals to be specified (noir-lang/noir#6592) (3304046)
- Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) (3304046)
- Sassy network (#10468) (92eb377)
- Simplify otel config, 1val setup, fix pod dns, retries (#10344) (be91d80)
- Skip A->B B->A e2e_2_pxes test (#10297) (b75bfd0)
- Sync logging with jest (#10459) (6e33cb9)
- Typo in oracles how to (noir-lang/noir#6598) (3304046)
- Update noir-bench-report version (noir-lang/noir#6675) (3304046)
- Update pprof (noir-lang/noir#6710) (3304046)
- Update release-please action (noir-lang/noir#6704) (3304046)
- Use non default mnemonic for releases (#10400) (bb5f364)