Skip to content
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: Sync from noir #9099

Merged
merged 63 commits into from
Oct 14, 2024
Merged

feat: Sync from noir #9099

merged 63 commits into from
Oct 14, 2024

Conversation

AztecBot
Copy link
Collaborator

@AztecBot AztecBot commented Oct 9, 2024

Automated pull of development from the noir programming language, a dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: regression test for #5462 (noir-lang/noir#6286)
feat(improve): Remove scan through globals (noir-lang/noir#6282)
feat: show LSP diagnostic related information (noir-lang/noir#6277)
feat: trait inheritance (noir-lang/noir#6252)
feat: optimize reading a workspace's files (noir-lang/noir#6281)
fix: prevent compiler panic when popping from empty slices (noir-lang/noir#6274)
feat(test): Include the PoseidonHasher in the fuzzing (noir-lang/noir#6280)
feat: slightly improve "unexpected token" error message (noir-lang/noir#6279)
feat(test): Fuzz poseidon hases against an external library (noir-lang/noir#6273)
feat: remove byte decomposition in compute_decomposition (noir-lang/noir#6159)
fix: address inactive public key check in verify_signature_noir (noir-lang/noir#6270)
feat(test): Fuzz test poseidon2 hash equivalence (noir-lang/noir#6265)
fix!: Integer division is not the inverse of integer multiplication (noir-lang/noir#6243)
feat(perf): Flamegraphs for test program execution benchmarks (noir-lang/noir#6253)
fix: visibility for impl methods (noir-lang/noir#6261)
feat: Add checked_transmute (noir-lang/noir#6262)
feat!: kind size checks (noir-lang/noir#6137)
feat: don't crash LSP when there are errors resolving the workspace (noir-lang/noir#6257)
fix: don't warn on unuse global if it has an abi annotation (noir-lang/noir#6258)
fix: don't warn on unused struct that has an abi annotation (noir-lang/noir#6254)
feat: don't suggest private struct fields in LSP (noir-lang/noir#6256)
feat: visibility for struct fields (noir-lang/noir#6221)
fix: handle dfg databus in SSA normalization (noir-lang/noir#6249)
fix: homogeneous input points for EC ADD (noir-lang/noir#6241)
chore: add regression test for #5756 (noir-lang/noir#5770)
feat: allow unconstrained after visibility (noir-lang/noir#6246)
feat: optimize Quoted::as_expr by parsing just once (noir-lang/noir#6237)
fix(frontend): Do not warn when a nested struct is provided as input to main (noir-lang/noir#6239)
fix!: Change tag attributes to require a ' prefix (noir-lang/noir#6235)
feat: recover from '=' instead of ':' in struct constructor/pattern (noir-lang/noir#6236)
END_COMMIT_OVERRIDE

AztecBot and others added 11 commits October 9, 2024 08:02
…6241)

chore: add regression test for #5756 (noir-lang/noir#5770)
feat: allow `unconstrained` after visibility (noir-lang/noir#6246)
feat: optimize `Quoted::as_expr` by parsing just once (noir-lang/noir#6237)
fix(frontend): Do not warn when a nested struct is provided as input to main (noir-lang/noir#6239)
fix!: Change tag attributes to require a ' prefix (noir-lang/noir#6235)
feat: recover from '=' instead of ':' in struct constructor/pattern (noir-lang/noir#6236)
feat: Add `checked_transmute` (noir-lang/noir#6262)
feat!: kind size checks (noir-lang/noir#6137)
feat: don't crash LSP when there are errors resolving the workspace (noir-lang/noir#6257)
fix: don't warn on unuse global if it has an abi annotation (noir-lang/noir#6258)
fix: don't warn on unused struct that has an abi annotation (noir-lang/noir#6254)
feat: don't suggest private struct fields in LSP (noir-lang/noir#6256)
feat: visibility for struct fields (noir-lang/noir#6221)
fix: handle dfg databus in SSA normalization (noir-lang/noir#6249)
fix: homogeneous input points for EC ADD (noir-lang/noir#6241)
chore: add regression test for #5756 (noir-lang/noir#5770)
feat: allow `unconstrained` after visibility (noir-lang/noir#6246)
feat: optimize `Quoted::as_expr` by parsing just once (noir-lang/noir#6237)
fix(frontend): Do not warn when a nested struct is provided as input to main (noir-lang/noir#6239)
fix!: Change tag attributes to require a ' prefix (noir-lang/noir#6235)
feat: recover from '=' instead of ':' in struct constructor/pattern (noir-lang/noir#6236)
feat: Add `checked_transmute` (noir-lang/noir#6262)
feat!: kind size checks (noir-lang/noir#6137)
feat: don't crash LSP when there are errors resolving the workspace (noir-lang/noir#6257)
fix: don't warn on unuse global if it has an abi annotation (noir-lang/noir#6258)
fix: don't warn on unused struct that has an abi annotation (noir-lang/noir#6254)
feat: don't suggest private struct fields in LSP (noir-lang/noir#6256)
feat: visibility for struct fields (noir-lang/noir#6221)
fix: handle dfg databus in SSA normalization (noir-lang/noir#6249)
fix: homogeneous input points for EC ADD (noir-lang/noir#6241)
chore: add regression test for #5756 (noir-lang/noir#5770)
feat: allow `unconstrained` after visibility (noir-lang/noir#6246)
feat: optimize `Quoted::as_expr` by parsing just once (noir-lang/noir#6237)
fix(frontend): Do not warn when a nested struct is provided as input to main (noir-lang/noir#6239)
fix!: Change tag attributes to require a ' prefix (noir-lang/noir#6235)
feat: recover from '=' instead of ':' in struct constructor/pattern (noir-lang/noir#6236)
…ry (noir-lang/noir#6273)

feat: remove byte decomposition in `compute_decomposition` (noir-lang/noir#6159)
fix: address inactive public key check in `verify_signature_noir` (noir-lang/noir#6270)
feat(test): Fuzz test poseidon2 hash equivalence (noir-lang/noir#6265)
fix!: Integer division is not the inverse of integer multiplication (noir-lang/noir#6243)
feat(perf): Flamegraphs for test program execution benchmarks (noir-lang/noir#6253)
fix: visibility for impl methods (noir-lang/noir#6261)
feat: Add `checked_transmute` (noir-lang/noir#6262)
feat!: kind size checks (noir-lang/noir#6137)
feat: don't crash LSP when there are errors resolving the workspace (noir-lang/noir#6257)
fix: don't warn on unuse global if it has an abi annotation (noir-lang/noir#6258)
fix: don't warn on unused struct that has an abi annotation (noir-lang/noir#6254)
feat: don't suggest private struct fields in LSP (noir-lang/noir#6256)
feat: visibility for struct fields (noir-lang/noir#6221)
fix: handle dfg databus in SSA normalization (noir-lang/noir#6249)
fix: homogeneous input points for EC ADD (noir-lang/noir#6241)
chore: add regression test for #5756 (noir-lang/noir#5770)
feat: allow `unconstrained` after visibility (noir-lang/noir#6246)
feat: optimize `Quoted::as_expr` by parsing just once (noir-lang/noir#6237)
fix(frontend): Do not warn when a nested struct is provided as input to main (noir-lang/noir#6239)
fix!: Change tag attributes to require a ' prefix (noir-lang/noir#6235)
feat: recover from '=' instead of ':' in struct constructor/pattern (noir-lang/noir#6236)
…g/noir#6273)

feat: remove byte decomposition in `compute_decomposition` (noir-lang/noir#6159)
fix: address inactive public key check in `verify_signature_noir` (noir-lang/noir#6270)
feat(test): Fuzz test poseidon2 hash equivalence (noir-lang/noir#6265)
fix!: Integer division is not the inverse of integer multiplication (noir-lang/noir#6243)
feat(perf): Flamegraphs for test program execution benchmarks (noir-lang/noir#6253)
fix: visibility for impl methods (noir-lang/noir#6261)
feat: Add `checked_transmute` (noir-lang/noir#6262)
feat!: kind size checks (noir-lang/noir#6137)
feat: don't crash LSP when there are errors resolving the workspace (noir-lang/noir#6257)
fix: don't warn on unuse global if it has an abi annotation (noir-lang/noir#6258)
fix: don't warn on unused struct that has an abi annotation (noir-lang/noir#6254)
feat: don't suggest private struct fields in LSP (noir-lang/noir#6256)
feat: visibility for struct fields (noir-lang/noir#6221)
fix: handle dfg databus in SSA normalization (noir-lang/noir#6249)
fix: homogeneous input points for EC ADD (noir-lang/noir#6241)
chore: add regression test for #5756 (noir-lang/noir#5770)
feat: allow `unconstrained` after visibility (noir-lang/noir#6246)
feat: optimize `Quoted::as_expr` by parsing just once (noir-lang/noir#6237)
fix(frontend): Do not warn when a nested struct is provided as input to main (noir-lang/noir#6239)
fix!: Change tag attributes to require a ' prefix (noir-lang/noir#6235)
feat: recover from '=' instead of ':' in struct constructor/pattern (noir-lang/noir#6236)
* master: (155 commits)
  fix(ci): don't report for now on kind-network-test (#9163)
  chore(ci): disable gossip_network.test.ts (#9165)
  chore: script for deploying the spartan network (#9167)
  feat!: Brillig with a stack and conditional inlining (#8989)
  fix: spartan account pre-funding (#9161)
  chore: reenable sync test (#9160)
  feat: Browser tests for UltraHonk (#9047)
  feat: make index in inbox global (#9110)
  feat: add sequencer address to metrics (#9145)
  feat: add validator address to logs (#9143)
  refactor(avm): type aliasing for VmPublicInputs (#8884)
  feat: drop epoch duration / block times (#9149)
  feat: stable deployments for spartan (#9147)
  fix: e2e-p2p attestation timeout (#9154)
  feat!: unrevert "feat: new per-enqueued-call gas limit" (#9140)
  feat: better tracing/metrics in validator and archiver (#9108)
  chore: revert deletion of the old bbup (#9146)
  chore(docs): rewriting bbup script, refactoring bb readme for clarity (#9073)
  git subrepo push --branch=master noir-projects/aztec-nr
  git_subrepo.sh: Fix parent in .gitrepo file. [skip ci]
  ...
@TomAFrench TomAFrench enabled auto-merge (squash) October 11, 2024 00:12
TomAFrench and others added 7 commits October 11, 2024 01:15
…oir-lang/noir#6279)

feat(test): Fuzz poseidon hases against an external library (noir-lang/noir#6273)
feat: remove byte decomposition in `compute_decomposition` (noir-lang/noir#6159)
fix: address inactive public key check in `verify_signature_noir` (noir-lang/noir#6270)
feat(test): Fuzz test poseidon2 hash equivalence (noir-lang/noir#6265)
fix!: Integer division is not the inverse of integer multiplication (noir-lang/noir#6243)
feat(perf): Flamegraphs for test program execution benchmarks (noir-lang/noir#6253)
fix: visibility for impl methods (noir-lang/noir#6261)
feat: Add `checked_transmute` (noir-lang/noir#6262)
feat!: kind size checks (noir-lang/noir#6137)
feat: don't crash LSP when there are errors resolving the workspace (noir-lang/noir#6257)
fix: don't warn on unuse global if it has an abi annotation (noir-lang/noir#6258)
fix: don't warn on unused struct that has an abi annotation (noir-lang/noir#6254)
feat: don't suggest private struct fields in LSP (noir-lang/noir#6256)
feat: visibility for struct fields (noir-lang/noir#6221)
fix: handle dfg databus in SSA normalization (noir-lang/noir#6249)
fix: homogeneous input points for EC ADD (noir-lang/noir#6241)
chore: add regression test for #5756 (noir-lang/noir#5770)
feat: allow `unconstrained` after visibility (noir-lang/noir#6246)
feat: optimize `Quoted::as_expr` by parsing just once (noir-lang/noir#6237)
fix(frontend): Do not warn when a nested struct is provided as input to main (noir-lang/noir#6239)
fix!: Change tag attributes to require a ' prefix (noir-lang/noir#6235)
feat: recover from '=' instead of ':' in struct constructor/pattern (noir-lang/noir#6236)
…ir#6279)

feat(test): Fuzz poseidon hases against an external library (noir-lang/noir#6273)
feat: remove byte decomposition in `compute_decomposition` (noir-lang/noir#6159)
fix: address inactive public key check in `verify_signature_noir` (noir-lang/noir#6270)
feat(test): Fuzz test poseidon2 hash equivalence (noir-lang/noir#6265)
fix!: Integer division is not the inverse of integer multiplication (noir-lang/noir#6243)
feat(perf): Flamegraphs for test program execution benchmarks (noir-lang/noir#6253)
fix: visibility for impl methods (noir-lang/noir#6261)
feat: Add `checked_transmute` (noir-lang/noir#6262)
feat!: kind size checks (noir-lang/noir#6137)
feat: don't crash LSP when there are errors resolving the workspace (noir-lang/noir#6257)
fix: don't warn on unuse global if it has an abi annotation (noir-lang/noir#6258)
fix: don't warn on unused struct that has an abi annotation (noir-lang/noir#6254)
feat: don't suggest private struct fields in LSP (noir-lang/noir#6256)
feat: visibility for struct fields (noir-lang/noir#6221)
fix: handle dfg databus in SSA normalization (noir-lang/noir#6249)
fix: homogeneous input points for EC ADD (noir-lang/noir#6241)
chore: add regression test for #5756 (noir-lang/noir#5770)
feat: allow `unconstrained` after visibility (noir-lang/noir#6246)
feat: optimize `Quoted::as_expr` by parsing just once (noir-lang/noir#6237)
fix(frontend): Do not warn when a nested struct is provided as input to main (noir-lang/noir#6239)
fix!: Change tag attributes to require a ' prefix (noir-lang/noir#6235)
feat: recover from '=' instead of ':' in struct constructor/pattern (noir-lang/noir#6236)
AztecBot and others added 20 commits October 14, 2024 08:03
feat(improve): Remove scan through globals (noir-lang/noir#6282)
feat: show LSP diagnostic related information (noir-lang/noir#6277)
feat: trait inheritance (noir-lang/noir#6252)
feat: optimize reading a workspace's files (noir-lang/noir#6281)
fix: prevent compiler panic when popping from empty slices (noir-lang/noir#6274)
feat(test): Include the PoseidonHasher in the fuzzing (noir-lang/noir#6280)
feat: slightly improve "unexpected token" error message (noir-lang/noir#6279)
feat(test): Fuzz poseidon hases against an external library (noir-lang/noir#6273)
feat: remove byte decomposition in `compute_decomposition` (noir-lang/noir#6159)
fix: address inactive public key check in `verify_signature_noir` (noir-lang/noir#6270)
feat(test): Fuzz test poseidon2 hash equivalence (noir-lang/noir#6265)
fix!: Integer division is not the inverse of integer multiplication (noir-lang/noir#6243)
feat(perf): Flamegraphs for test program execution benchmarks (noir-lang/noir#6253)
fix: visibility for impl methods (noir-lang/noir#6261)
feat: Add `checked_transmute` (noir-lang/noir#6262)
feat!: kind size checks (noir-lang/noir#6137)
feat: don't crash LSP when there are errors resolving the workspace (noir-lang/noir#6257)
fix: don't warn on unuse global if it has an abi annotation (noir-lang/noir#6258)
fix: don't warn on unused struct that has an abi annotation (noir-lang/noir#6254)
feat: don't suggest private struct fields in LSP (noir-lang/noir#6256)
feat: visibility for struct fields (noir-lang/noir#6221)
fix: handle dfg databus in SSA normalization (noir-lang/noir#6249)
fix: homogeneous input points for EC ADD (noir-lang/noir#6241)
chore: add regression test for #5756 (noir-lang/noir#5770)
feat: allow `unconstrained` after visibility (noir-lang/noir#6246)
feat: optimize `Quoted::as_expr` by parsing just once (noir-lang/noir#6237)
fix(frontend): Do not warn when a nested struct is provided as input to main (noir-lang/noir#6239)
fix!: Change tag attributes to require a ' prefix (noir-lang/noir#6235)
feat: recover from '=' instead of ':' in struct constructor/pattern (noir-lang/noir#6236)
Copy link
Contributor

github-actions bot commented Oct 14, 2024

Changes to public function bytecode sizes

Generated at commit: 0eb44ab1a43c8e24676ecb1f108b33cf5f3f390b, compared to commit: 8e66ef97b133b3d57d5b3742e0acf2b3792433f7

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
AvmTest::public_dispatch -476 ✅ -0.89%
Token::public_dispatch -253 ✅ -0.93%
TokenBlacklist::public_dispatch -253 ✅ -1.04%
NFT::public_dispatch -253 ✅ -1.19%
Test::public_dispatch -238 ✅ -1.36%
CardGame::public_dispatch -269 ✅ -1.80%
AvmTest::bulk_testing -454 ✅ -1.88%
CardGame::on_cards_claimed -269 ✅ -3.87%
TokenBlacklist::shield -253 ✅ -4.03%
NFT::finalize_transfer_to_private -253 ✅ -4.61%
Token::shield -253 ✅ -4.88%
TokenBlacklist::mint_private -253 ✅ -6.30%
AvmTest::pedersen_hash_with_index -238 ✅ -7.29%
AvmTest::pedersen_hash -238 ✅ -7.29%
Token::mint_private -253 ✅ -7.88%
Token::complete_refund -253 ✅ -8.48%
Test::create_l2_to_l1_message_public -238 ✅ -10.63%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
AvmTest::public_dispatch 53,189 (-476) -0.89%
Token::public_dispatch 26,905 (-253) -0.93%
TokenBlacklist::public_dispatch 24,029 (-253) -1.04%
NFT::public_dispatch 20,955 (-253) -1.19%
Test::public_dispatch 17,228 (-238) -1.36%
CardGame::public_dispatch 14,659 (-269) -1.80%
AvmTest::bulk_testing 23,704 (-454) -1.88%
CardGame::on_cards_claimed 6,676 (-269) -3.87%
TokenBlacklist::shield 6,018 (-253) -4.03%
NFT::finalize_transfer_to_private 5,236 (-253) -4.61%
Token::shield 4,935 (-253) -4.88%
TokenBlacklist::mint_private 3,761 (-253) -6.30%
AvmTest::pedersen_hash_with_index 3,026 (-238) -7.29%
AvmTest::pedersen_hash 3,026 (-238) -7.29%
Token::mint_private 2,958 (-253) -7.88%
Token::complete_refund 2,729 (-253) -8.48%
Test::create_l2_to_l1_message_public 2,000 (-238) -10.63%

@TomAFrench
Copy link
Member

fyi @rahul-kothari that aztec contracts are a little mangled by this sync so we shouldn't push out a new release for sandbox devs until this is addressed.

Copy link
Contributor

Changes to circuit sizes

Generated at commit: 0eb44ab1a43c8e24676ecb1f108b33cf5f3f390b, compared to commit: 8e66ef97b133b3d57d5b3742e0acf2b3792433f7

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
private_kernel_empty 0 ➖ 0.00% +936,476 ❌ +26863.91%
private_kernel_tail +62 ❌ +1.33% +524 ❌ +5.81%
private_kernel_tail_to_public +62 ❌ +0.21% +523 ❌ +1.32%
private_kernel_inner +61 ❌ +0.14% +523 ❌ +1.00%
private_kernel_reset_4_4_4_4_4_4_4_4_1 +59 ❌ +0.17% +519 ❌ +0.70%
private_kernel_reset +59 ❌ +0.06% +520 ❌ +0.11%
rollup_merge +122 ❌ +3.32% +1,051 ❌ +0.06%
rollup_root +120 ❌ +1.68% +1,050 ❌ +0.06%
rollup_block_merge +120 ❌ +1.67% +1,048 ❌ +0.06%
rollup_block_root +128 ❌ +3.10% +1,513 ❌ +0.05%
parity_root +28 ❌ +0.52% +1,847 ❌ +0.05%
public_kernel_merge +62 ❌ +0.12% +520 ❌ +0.05%
public_kernel_tail +9 ❌ +0.00% +461 ❌ +0.02%
rollup_base +58 ❌ +0.01% +518 ❌ +0.02%
empty_nested 0 ➖ +∞% -5 ✅ -23.81%
empty_nested_simulated 0 ➖ 0.00% -5 ✅ -23.81%
private_kernel_empty_simulated 0 ➖ 0.00% -5 ✅ -23.81%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
private_kernel_empty 671 (0) 0.00% 939,962 (+936,476) +26863.91%
private_kernel_tail 4,710 (+62) +1.33% 9,545 (+524) +5.81%
private_kernel_tail_to_public 29,890 (+62) +0.21% 40,033 (+523) +1.32%
private_kernel_inner 44,103 (+61) +0.14% 52,877 (+523) +1.00%
private_kernel_reset_4_4_4_4_4_4_4_4_1 34,956 (+59) +0.17% 74,998 (+519) +0.70%
private_kernel_reset 91,992 (+59) +0.06% 468,250 (+520) +0.11%
rollup_merge 3,795 (+122) +3.32% 1,897,297 (+1,051) +0.06%
rollup_root 7,273 (+120) +1.68% 1,900,452 (+1,050) +0.06%
rollup_block_merge 7,289 (+120) +1.67% 1,900,466 (+1,048) +0.06%
rollup_block_root 4,252 (+128) +3.10% 2,838,780 (+1,513) +0.05%
parity_root 5,427 (+28) +0.52% 3,776,972 (+1,847) +0.05%
public_kernel_merge 53,594 (+62) +0.12% 1,104,122 (+520) +0.05%
public_kernel_tail 258,433 (+9) +0.00% 2,270,721 (+461) +0.02%
rollup_base 483,231 (+58) +0.01% 3,356,255 (+518) +0.02%
empty_nested 0 (0) +∞% 16 (-5) -23.81%
empty_nested_simulated 1 (0) 0.00% 16 (-5) -23.81%
private_kernel_empty_simulated 1 (0) 0.00% 16 (-5) -23.81%

@TomAFrench TomAFrench merged commit 5a3a8cc into master Oct 14, 2024
56 checks passed
@TomAFrench TomAFrench deleted the sync-noir branch October 14, 2024 23:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants