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 #11138

Merged
merged 28 commits into from
Jan 11, 2025
Merged

feat: Sync from noir #11138

merged 28 commits into from
Jan 11, 2025

Conversation

AztecBot
Copy link
Collaborator

@AztecBot AztecBot commented Jan 9, 2025

Automated pull of development from the noir programming language, a dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
feat: SSA globals in monomorphization and SSA gen (noir-lang/noir#6985)
feat!: disallow calling unconstrained functions outside of unsafe blocks and passing unconstrained functions in place of constrained functions (noir-lang/noir#6938)
chore: simplify a couple of enum variants (noir-lang/noir#7025)
chore: disallow inserting ACIR-only instructions into brillig functions (noir-lang/noir#7017)
feat: unchecked math operations in SSA (noir-lang/noir#7011)
chore: delete docs for versions which aren't used (noir-lang/noir#7020)
feat!: Disable mocks in execute (noir-lang/noir#6869)
chore(docs): backport 1.0.0-beta.0 doc fixes (noir-lang/noir#7014)
feat(cli): Add CLI option to filter by contract function name (noir-lang/noir#7018)
chore: Add more Field use info (noir-lang/noir#7019)
fix: let static_assert fail with the provided message (noir-lang/noir#7005)
chore: mark aztec-nr as expected to compile (noir-lang/noir#7015)
chore: clarity fix in docs (noir-lang/noir#7016)
fix: require generic trait impls to be in scope to call them (noir-lang/noir#6913)
feat!: require trait primitive functions/calls to have their trait in scope (noir-lang/noir#6901)
feat(lsp): use trait method docs for trait impl method docs on hover (noir-lang/noir#7003)
chore: turn on averaging for protocol circuits metrics in CI (noir-lang/noir#6999)
feat(comptime): Implement to_be_bits and to_le_bits in the interpreter (noir-lang/noir#7008)
chore: Add short circuit in ssa-gen for known if conditions (noir-lang/noir#7007)
chore: Only resolved globals monomorphization (noir-lang/noir#7006)
chore: Remove resolve_is_unconstrained pass (noir-lang/noir#7004)
chore: require safety doc comment for unsafe instead of //@safety (noir-lang/noir#6992)
fix: Reproduce and fix bytecode blowup (noir-lang/noir#6972)
chore: mark casts as able to be deduplicated (noir-lang/noir#6996)
fix: return trait impl method as FuncId if there's only one (noir-lang/noir#6989)
chore(ci): fail properly in external-repo-checks (noir-lang/noir#6988)
fix: allow multiple trait impls for the same trait as long as one is in scope (noir-lang/noir#6987)
chore: Use DFG in SSA printer (noir-lang/noir#6986)
chore!: Reserve enum and match keywords (noir-lang/noir#6961)
END_COMMIT_OVERRIDE

AztecBot and others added 3 commits January 9, 2025 21:26
…eir trait in scope (noir-lang/noir#6901)

feat(lsp): use trait method docs for trait impl method docs on hover (noir-lang/noir#7003)
chore: turn on averaging for protocol circuits metrics in CI (noir-lang/noir#6999)
feat(comptime): Implement to_be_bits and to_le_bits in the interpreter (noir-lang/noir#7008)
chore: Add short circuit in ssa-gen for known if conditions (noir-lang/noir#7007)
chore: Only resolved globals monomorphization (noir-lang/noir#7006)
chore: Remove resolve_is_unconstrained pass (noir-lang/noir#7004)
chore: require safety doc comment for unsafe instead of `//@safety` (noir-lang/noir#6992)
fix: Reproduce and fix bytecode blowup (noir-lang/noir#6972)
chore: mark casts as able to be deduplicated (noir-lang/noir#6996)
fix: return trait impl method as FuncId if there's only one (noir-lang/noir#6989)
chore(ci): fail properly in `external-repo-checks` (noir-lang/noir#6988)
fix: allow multiple trait impls for the same trait as long as one is in scope (noir-lang/noir#6987)
chore: Use DFG in SSA printer (noir-lang/noir#6986)
chore!: Reserve `enum` and `match` keywords (noir-lang/noir#6961)
* master: (287 commits)
  feat: Sync from noir (#11051)
  chore(docs): Update tx concepts page (#10947)
  chore(docs): Edit Aztec.nr Guide section (#10866)
  chore: test:e2e defaults to no-docker (#10966)
  chore(avm): improve column stats (#11135)
  chore: Sanity checking of proving job IDs (#11134)
  feat: permutation argument optimizations  (#10960)
  feat: single tx block root rollup (#11096)
  refactor: prover db config (#11126)
  feat: monitor event loop lag (#11127)
  chore: Greater stability at 1TPS (#10981)
  chore: Jest reporters for CI (#11125)
  fix: Sequencer times out L1 tx at end of L2 slot (#11112)
  feat: browser chunking (#11102)
  fix: Added start/stop guards to running promise and serial queue (#11120)
  fix: Don't retransmit txs upon node restart (#11123)
  fix: Prover node aborts execution at epoch end (#11111)
  feat: blob sink in sandbox without extra process (#11032)
  chore: log number of instructions executed for call in AVM. Misc fix. (#11110)
  git subrepo push --branch=master noir-projects/aztec-nr
  ...
@TomAFrench TomAFrench enabled auto-merge (squash) January 9, 2025 21:32
Copy link
Contributor

github-actions bot commented Jan 10, 2025

Changes to public function bytecode sizes

Generated at commit: e6207ffd233832d7f3b32467ab809362e61d1b92, compared to commit: 9b99126bb97b1beb1d922a3c404aecdaed0bee69

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
Token::public_dispatch +1,944 ❌ +6.45%
TokenBlacklist::public_dispatch +1,193 ❌ +5.35%
NFT::public_dispatch +528 ❌ +2.32%
DocsExample::public_dispatch -8 ✅ -0.21%
AMM::_add_liquidity -18 ✅ -0.21%
AMM::_remove_liquidity -18 ✅ -0.26%
StaticParent::public_dispatch -18 ✅ -0.32%
Uniswap::public_dispatch -148 ✅ -0.62%
AMM::public_dispatch -134 ✅ -0.64%
AuthRegistry::public_dispatch -49 ✅ -0.68%
Lending::_borrow -54 ✅ -0.75%
FeeJuice::public_dispatch -36 ✅ -0.78%
Lending::public_dispatch -198 ✅ -0.78%
Lending::_withdraw -72 ✅ -0.84%
Parent::public_dispatch -72 ✅ -0.95%
Lending::_repay -54 ✅ -0.98%
Benchmarking::public_dispatch -36 ✅ -1.01%
FPC::public_dispatch -76 ✅ -1.02%
AppSubscription::public_dispatch -49 ✅ -1.22%
PriceFeed::public_dispatch -36 ✅ -1.25%
StatefulTest::public_dispatch -72 ✅ -1.25%
Lending::get_position -54 ✅ -1.26%
Lending::update_accumulator -72 ✅ -1.30%
Lending::deposit_public -36 ✅ -1.30%
AvmInitializerTest::public_dispatch -36 ✅ -1.35%
FPC::pull_funds -36 ✅ -1.36%
Lending::repay_public -36 ✅ -1.37%
InclusionProofs::public_dispatch -54 ✅ -1.39%
Uniswap::swap_public -229 ✅ -1.48%
EasyPrivateVoting::public_dispatch -72 ✅ -1.50%
Claim::public_dispatch -54 ✅ -1.51%
Token::transfer_in_public -67 ✅ -1.51%
Token::mint_to_public -36 ✅ -1.56%
Crowdfunding::public_dispatch -72 ✅ -1.56%
TokenBlacklist::_increase_public_balance -36 ✅ -1.56%
Token::_increase_public_balance -36 ✅ -1.56%
AppSubscription::constructor -49 ✅ -1.59%
AuthRegistry::consume -49 ✅ -1.61%
Benchmarking::increment_balance -36 ✅ -1.62%
NFT::mint -36 ✅ -1.66%
FPC::pay_refund -36 ✅ -1.67%
AvmTest::get_args_hash -31 ✅ -1.67%
StaticParent::public_nested_static_call -36 ✅ -1.67%
Token::burn_public -72 ✅ -1.70%
FeeJuice::check_balance -36 ✅ -1.72%
FeeJuice::_increase_public_balance -36 ✅ -1.76%
Spam::public_dispatch -54 ✅ -1.78%
TokenBlacklist::shield -103 ✅ -1.79%
Lending::borrow_public -36 ✅ -1.80%
Lending::withdraw_public -36 ✅ -1.80%
Auth::get_authorized_delay -36 ✅ -1.80%
StatefulTest::public_constructor -54 ✅ -1.84%
TokenBridge::public_dispatch -378 ✅ -1.86%
AvmTest::external_call_to_divide_by_zero_recovers -54 ✅ -1.88%
NFT::transfer_in_public -67 ✅ -1.88%
AvmInitializerTest::constructor -36 ✅ -1.88%
TokenBlacklist::transfer_public -103 ✅ -1.89%
Claim::constructor -54 ✅ -1.91%
TokenBlacklist::mint_private -72 ✅ -1.92%
EasyPrivateVoting::add_to_tally_public -36 ✅ -1.92%
Crowdfunding::init -54 ✅ -1.93%
Token::constructor -85 ✅ -1.95%
NFT::owner_of -36 ✅ -1.97%
NFT::constructor -85 ✅ -1.98%
TokenBridge::constructor -54 ✅ -1.98%
TokenBlacklist::mint_public -72 ✅ -2.00%
Uniswap::_approve_bridge_and_exit_input_asset_to_L1 -139 ✅ -2.01%
FPC::constructor -54 ✅ -2.01%
Parent::public_nested_static_call -72 ✅ -2.02%
TokenBlacklist::balance_of_public -36 ✅ -2.03%
Token::balance_of_public -36 ✅ -2.03%
AuthRegistry::is_consumable -36 ✅ -2.04%
AuthRegistry::_set_authorized -36 ✅ -2.05%
AvmTest::public_dispatch -1,322 ✅ -2.08%
AvmTest::add_storage_map -36 ✅ -2.09%
Auth::constructor -54 ✅ -2.09%
EasyPrivateVoting::constructor -54 ✅ -2.10%
FeeJuice::balance_of_public -36 ✅ -2.10%
AuthRegistry::set_authorized -36 ✅ -2.10%
Uniswap::constructor -54 ✅ -2.13%
TokenBlacklist::burn_public -108 ✅ -2.15%
NFT::is_minter -36 ✅ -2.15%
PriceFeed::set_price -36 ✅ -2.15%
NFT::set_minter -36 ✅ -2.15%
Token::is_minter -36 ✅ -2.16%
Token::set_minter -36 ✅ -2.16%
NFT::_finish_transfer_to_public -36 ✅ -2.18%
InclusionProofs::constructor -54 ✅ -2.19%
Benchmarking::broadcast -36 ✅ -2.20%
TokenBridge::exit_to_l1_public -144 ✅ -2.20%
PriceFeed::get_price -36 ✅ -2.21%
AvmTest::set_storage_map -36 ✅ -2.22%
AuthRegistry::is_reject_all -36 ✅ -2.22%
StatefulTest::increment_public_value -36 ✅ -2.23%
StatefulTest::get_public_value -36 ✅ -2.25%
Lending::_deposit -54 ✅ -2.28%
AvmTest::read_storage_map -36 ✅ -2.28%
AuthRegistry::set_reject_all -36 ✅ -2.29%
StatefulTest::increment_public_value_no_init_check -36 ✅ -2.30%
AvmTest::poseidon2_hash -36 ✅ -2.33%
TokenBridge::claim_public -270 ✅ -2.38%
TestLog::public_dispatch -54 ✅ -2.40%
Spam::public_spam -54 ✅ -2.40%
Test::consume_mint_to_public_message -274 ✅ -2.54%
AMM::constructor -72 ✅ -2.59%
Lending::init -72 ✅ -2.61%
TokenBlacklist::get_roles -72 ✅ -2.62%
Lending::get_asset -54 ✅ -2.63%
Test::public_dispatch -478 ✅ -2.65%
AvmTest::u128_addition_overflow -36 ✅ -2.71%
AvmTest::sha256_hash -108 ✅ -2.78%
Test::consume_message_from_arbitrary_sender_public -220 ✅ -2.80%
TokenBlacklist::update_roles -184 ✅ -2.81%
Token::complete_refund -193 ✅ -2.81%
Auth::get_authorized -54 ✅ -2.87%
Auth::public_dispatch -275 ✅ -2.91%
AvmTest::bulk_testing -710 ✅ -2.98%
Token::_finalize_transfer_to_private_unsafe -193 ✅ -3.02%
Auth::get_scheduled_authorized -54 ✅ -3.03%
AvmTest::returndata_copy_oracle -54 ✅ -3.03%
Token::finalize_transfer_to_private -193 ✅ -3.04%
TokenBlacklist::constructor -216 ✅ -3.16%
TestLog::emit_unencrypted_events -36 ✅ -3.18%
Token::_finalize_mint_to_private_unsafe -193 ✅ -3.19%
Auth::set_authorized_delay -162 ✅ -3.21%
Token::finalize_mint_to_private -193 ✅ -3.22%
NFT::_finalize_transfer_to_private_unsafe -175 ✅ -3.26%
Auth::set_authorized -162 ✅ -3.27%
AvmTest::emit_unencrypted_log -90 ✅ -3.29%
NFT::finalize_transfer_to_private -175 ✅ -3.29%
AvmTest::n_storage_writes -54 ✅ -3.33%
Test::emit_unencrypted -54 ✅ -3.72%
CardGame::on_game_joined -185 ✅ -3.86%
Crowdfunding::_publish_donation_receipts -36 ✅ -3.90%
AvmTest::nested_call_to_add_n_times_different_addresses -36 ✅ -4.34%
AvmTest::u128_from_integer_overflow -36 ✅ -4.43%
AvmTest::keccak_hash -108 ✅ -4.60%
CardGame::on_cards_claimed -339 ✅ -4.81%
NFT::_store_payload_in_transient_storage_unsafe -72 ✅ -5.99%
Token::_store_payload_in_transient_storage_unsafe -72 ✅ -5.99%
CardGame::on_card_played -344 ✅ -6.27%
AvmTest::pedersen_hash_with_index -208 ✅ -6.76%
AvmTest::pedersen_hash -208 ✅ -6.76%
AvmTest::assert_calldata_copy -36 ✅ -6.78%
AvmTest::variable_base_msm -16 ✅ -7.14%
CardGame::public_dispatch -1,145 ✅ -7.73%
CardGame::start_game -547 ✅ -8.34%
AvmTest::pedersen_commit -109 ✅ -8.58%
Test::create_l2_to_l1_message_public -208 ✅ -9.52%
AvmTest::n_new_unencrypted_logs -36 ✅ -11.76%
AvmTest::n_new_l2_to_l1_msgs -36 ✅ -16.22%
AvmTest::n_new_nullifiers -36 ✅ -16.36%
AvmTest::n_new_note_hashes -36 ✅ -16.36%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
Token::public_dispatch 32,087 (+1,944) +6.45%
TokenBlacklist::public_dispatch 23,507 (+1,193) +5.35%
NFT::public_dispatch 23,323 (+528) +2.32%
DocsExample::public_dispatch 3,753 (-8) -0.21%
AMM::_add_liquidity 8,387 (-18) -0.21%
AMM::_remove_liquidity 6,893 (-18) -0.26%
StaticParent::public_dispatch 5,606 (-18) -0.32%
Uniswap::public_dispatch 23,874 (-148) -0.62%
AMM::public_dispatch 20,708 (-134) -0.64%
AuthRegistry::public_dispatch 7,107 (-49) -0.68%
Lending::_borrow 7,189 (-54) -0.75%
FeeJuice::public_dispatch 4,593 (-36) -0.78%
Lending::public_dispatch 25,134 (-198) -0.78%
Lending::_withdraw 8,543 (-72) -0.84%
Parent::public_dispatch 7,479 (-72) -0.95%
Lending::_repay 5,442 (-54) -0.98%
Benchmarking::public_dispatch 3,534 (-36) -1.01%
FPC::public_dispatch 7,367 (-76) -1.02%
AppSubscription::public_dispatch 3,979 (-49) -1.22%
PriceFeed::public_dispatch 2,846 (-36) -1.25%
StatefulTest::public_dispatch 5,692 (-72) -1.25%
Lending::get_position 4,219 (-54) -1.26%
Lending::update_accumulator 5,475 (-72) -1.30%
Lending::deposit_public 2,727 (-36) -1.30%
AvmInitializerTest::public_dispatch 2,632 (-36) -1.35%
FPC::pull_funds 2,615 (-36) -1.36%
Lending::repay_public 2,597 (-36) -1.37%
InclusionProofs::public_dispatch 3,825 (-54) -1.39%
Uniswap::swap_public 15,296 (-229) -1.48%
EasyPrivateVoting::public_dispatch 4,724 (-72) -1.50%
Claim::public_dispatch 3,531 (-54) -1.51%
Token::transfer_in_public 4,371 (-67) -1.51%
Token::mint_to_public 2,274 (-36) -1.56%
Crowdfunding::public_dispatch 4,535 (-72) -1.56%
TokenBlacklist::_increase_public_balance 2,265 (-36) -1.56%
Token::_increase_public_balance 2,265 (-36) -1.56%
AppSubscription::constructor 3,038 (-49) -1.59%
AuthRegistry::consume 3,000 (-49) -1.61%
Benchmarking::increment_balance 2,189 (-36) -1.62%
NFT::mint 2,131 (-36) -1.66%
FPC::pay_refund 2,122 (-36) -1.67%
AvmTest::get_args_hash 1,822 (-31) -1.67%
StaticParent::public_nested_static_call 2,114 (-36) -1.67%
Token::burn_public 4,161 (-72) -1.70%
FeeJuice::check_balance 2,053 (-36) -1.72%
FeeJuice::_increase_public_balance 2,006 (-36) -1.76%
Spam::public_dispatch 2,974 (-54) -1.78%
TokenBlacklist::shield 5,642 (-103) -1.79%
Lending::borrow_public 1,962 (-36) -1.80%
Lending::withdraw_public 1,962 (-36) -1.80%
Auth::get_authorized_delay 1,960 (-36) -1.80%
StatefulTest::public_constructor 2,887 (-54) -1.84%
TokenBridge::public_dispatch 19,968 (-378) -1.86%
AvmTest::external_call_to_divide_by_zero_recovers 2,819 (-54) -1.88%
NFT::transfer_in_public 3,491 (-67) -1.88%
AvmInitializerTest::constructor 1,874 (-36) -1.88%
TokenBlacklist::transfer_public 5,346 (-103) -1.89%
Claim::constructor 2,766 (-54) -1.91%
TokenBlacklist::mint_private 3,682 (-72) -1.92%
EasyPrivateVoting::add_to_tally_public 1,840 (-36) -1.92%
Crowdfunding::init 2,746 (-54) -1.93%
Token::constructor 4,281 (-85) -1.95%
NFT::owner_of 1,788 (-36) -1.97%
NFT::constructor 4,206 (-85) -1.98%
TokenBridge::constructor 2,670 (-54) -1.98%
TokenBlacklist::mint_public 3,529 (-72) -2.00%
Uniswap::_approve_bridge_and_exit_input_asset_to_L1 6,785 (-139) -2.01%
FPC::constructor 2,631 (-54) -2.01%
Parent::public_nested_static_call 3,501 (-72) -2.02%
TokenBlacklist::balance_of_public 1,734 (-36) -2.03%
Token::balance_of_public 1,734 (-36) -2.03%
AuthRegistry::is_consumable 1,730 (-36) -2.04%
AuthRegistry::_set_authorized 1,723 (-36) -2.05%
AvmTest::public_dispatch 62,246 (-1,322) -2.08%
AvmTest::add_storage_map 1,688 (-36) -2.09%
Auth::constructor 2,527 (-54) -2.09%
EasyPrivateVoting::constructor 2,523 (-54) -2.10%
FeeJuice::balance_of_public 1,680 (-36) -2.10%
AuthRegistry::set_authorized 1,676 (-36) -2.10%
Uniswap::constructor 2,486 (-54) -2.13%
TokenBlacklist::burn_public 4,914 (-108) -2.15%
NFT::is_minter 1,636 (-36) -2.15%
PriceFeed::set_price 1,636 (-36) -2.15%
NFT::set_minter 1,635 (-36) -2.15%
Token::is_minter 1,631 (-36) -2.16%
Token::set_minter 1,630 (-36) -2.16%
NFT::_finish_transfer_to_public 1,617 (-36) -2.18%
InclusionProofs::constructor 2,417 (-54) -2.19%
Benchmarking::broadcast 1,601 (-36) -2.20%
TokenBridge::exit_to_l1_public 6,390 (-144) -2.20%
PriceFeed::get_price 1,592 (-36) -2.21%
AvmTest::set_storage_map 1,586 (-36) -2.22%
AuthRegistry::is_reject_all 1,582 (-36) -2.22%
StatefulTest::increment_public_value 1,577 (-36) -2.23%
StatefulTest::get_public_value 1,567 (-36) -2.25%
Lending::_deposit 2,318 (-54) -2.28%
AvmTest::read_storage_map 1,541 (-36) -2.28%
AuthRegistry::set_reject_all 1,533 (-36) -2.29%
StatefulTest::increment_public_value_no_init_check 1,528 (-36) -2.30%
AvmTest::poseidon2_hash 1,512 (-36) -2.33%
TokenBridge::claim_public 11,058 (-270) -2.38%
TestLog::public_dispatch 2,195 (-54) -2.40%
Spam::public_spam 2,193 (-54) -2.40%
Test::consume_mint_to_public_message 10,534 (-274) -2.54%
AMM::constructor 2,713 (-72) -2.59%
Lending::init 2,691 (-72) -2.61%
TokenBlacklist::get_roles 2,671 (-72) -2.62%
Lending::get_asset 1,999 (-54) -2.63%
Test::public_dispatch 17,528 (-478) -2.65%
AvmTest::u128_addition_overflow 1,293 (-36) -2.71%
AvmTest::sha256_hash 3,780 (-108) -2.78%
Test::consume_message_from_arbitrary_sender_public 7,640 (-220) -2.80%
TokenBlacklist::update_roles 6,375 (-184) -2.81%
Token::complete_refund 6,664 (-193) -2.81%
Auth::get_authorized 1,826 (-54) -2.87%
Auth::public_dispatch 9,186 (-275) -2.91%
AvmTest::bulk_testing 23,096 (-710) -2.98%
Token::_finalize_transfer_to_private_unsafe 6,207 (-193) -3.02%
Auth::get_scheduled_authorized 1,731 (-54) -3.03%
AvmTest::returndata_copy_oracle 1,726 (-54) -3.03%
Token::finalize_transfer_to_private 6,160 (-193) -3.04%
TokenBlacklist::constructor 6,610 (-216) -3.16%
TestLog::emit_unencrypted_events 1,095 (-36) -3.18%
Token::_finalize_mint_to_private_unsafe 5,855 (-193) -3.19%
Auth::set_authorized_delay 4,887 (-162) -3.21%
Token::finalize_mint_to_private 5,808 (-193) -3.22%
NFT::_finalize_transfer_to_private_unsafe 5,185 (-175) -3.26%
Auth::set_authorized 4,791 (-162) -3.27%
AvmTest::emit_unencrypted_log 2,648 (-90) -3.29%
NFT::finalize_transfer_to_private 5,138 (-175) -3.29%
AvmTest::n_storage_writes 1,569 (-54) -3.33%
Test::emit_unencrypted 1,399 (-54) -3.72%
CardGame::on_game_joined 4,607 (-185) -3.86%
Crowdfunding::_publish_donation_receipts 886 (-36) -3.90%
AvmTest::nested_call_to_add_n_times_different_addresses 793 (-36) -4.34%
AvmTest::u128_from_integer_overflow 777 (-36) -4.43%
AvmTest::keccak_hash 2,241 (-108) -4.60%
CardGame::on_cards_claimed 6,711 (-339) -4.81%
NFT::_store_payload_in_transient_storage_unsafe 1,130 (-72) -5.99%
Token::_store_payload_in_transient_storage_unsafe 1,130 (-72) -5.99%
CardGame::on_card_played 5,145 (-344) -6.27%
AvmTest::pedersen_hash_with_index 2,869 (-208) -6.76%
AvmTest::pedersen_hash 2,869 (-208) -6.76%
AvmTest::assert_calldata_copy 495 (-36) -6.78%
AvmTest::variable_base_msm 208 (-16) -7.14%
CardGame::public_dispatch 13,666 (-1,145) -7.73%
CardGame::start_game 6,014 (-547) -8.34%
AvmTest::pedersen_commit 1,162 (-109) -8.58%
Test::create_l2_to_l1_message_public 1,976 (-208) -9.52%
AvmTest::n_new_unencrypted_logs 270 (-36) -11.76%
AvmTest::n_new_l2_to_l1_msgs 186 (-36) -16.22%
AvmTest::n_new_nullifiers 184 (-36) -16.36%
AvmTest::n_new_note_hashes 184 (-36) -16.36%

Copy link
Contributor

github-actions bot commented Jan 10, 2025

Changes to circuit sizes

Generated at commit: e6207ffd233832d7f3b32467ab809362e61d1b92, compared to commit: 9b99126bb97b1beb1d922a3c404aecdaed0bee69

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
parity_base +174 ❌ +4.92% +174 ❌ +0.58%
parity_root +174 ❌ +4.07% +174 ❌ +0.00%
rollup_merge +58 ❌ +3.21% +58 ❌ +0.00%
rollup_root -387 ✅ -1.23% -542 ✅ -0.00%
rollup_block_merge -387 ✅ -1.23% -542 ✅ -0.03%
rollup_block_root_empty -128 ✅ -6.23% -258 ✅ -0.03%
rollup_base_private -25,847 ✅ -15.72% -39,412 ✅ -2.18%
private_kernel_reset_0_0_0_64_0_0_0_0_0 -3,199 ✅ -10.40% -6,045 ✅ -2.21%
private_kernel_reset_0_0_0_0_64_0_0_0_0 -1,471 ✅ -9.72% -2,139 ✅ -2.21%
rollup_base_public -39,231 ✅ -9.66% -73,948 ✅ -2.23%
private_kernel_reset_0_64_0_0_0_0_0_0_0 -3,199 ✅ -10.87% -5,869 ✅ -2.24%
private_kernel_tail -557 ✅ -11.20% -686 ✅ -2.53%
rollup_block_root -106,488 ✅ -18.24% -142,439 ✅ -3.39%
rollup_block_root_single_tx -106,546 ✅ -18.29% -142,498 ✅ -4.35%
private_kernel_reset_0_0_64_0_0_0_0_0_0 -1,151 ✅ -9.19% -1,629 ✅ -4.49%
private_kernel_reset_64_0_0_0_0_0_0_0_0 -1,151 ✅ -9.19% -1,629 ✅ -4.49%
private_kernel_reset -22,215 ✅ -23.52% -34,850 ✅ -5.38%
private_kernel_tail_to_public -1,596 ✅ -11.22% -2,246 ✅ -5.56%
private_kernel_reset_32_32_32_32_32_32_32_32_32 -16,355 ✅ -25.56% -23,904 ✅ -6.63%
private_kernel_init -4,426 ✅ -19.57% -2,989 ✅ -7.05%
private_kernel_reset_32_16_32_16_4_4_64_64_4 -12,072 ✅ -25.45% -17,882 ✅ -8.19%
private_kernel_reset_32_16_32_16_4_4_64_4_4 -11,832 ✅ -25.96% -17,462 ✅ -8.24%
private_kernel_reset_16_16_16_16_16_16_16_16_16 -12,639 ✅ -27.11% -18,231 ✅ -8.50%
private_kernel_reset_32_16_32_16_4_4_64_64_32 -13,696 ✅ -26.60% -19,086 ✅ -8.51%
private_kernel_reset_32_16_32_16_4_4_64_4_32 -13,456 ✅ -27.11% -18,666 ✅ -8.58%
private_kernel_reset_32_16_32_16_4_4_4_64_4 -11,892 ✅ -26.44% -17,567 ✅ -8.69%
private_kernel_reset_32_16_32_16_4_4_4_4_4 -11,652 ✅ -27.02% -17,147 ✅ -8.76%
private_kernel_reset_32_16_32_16_4_4_4_64_32 -13,516 ✅ -27.57% -18,771 ✅ -9.02%
private_kernel_reset_32_16_32_16_4_4_4_4_32 -13,276 ✅ -28.15% -18,351 ✅ -9.11%
private_kernel_reset_32_4_32_16_4_4_64_64_4 -11,544 ✅ -26.32% -16,889 ✅ -9.62%
private_kernel_inner -9,340 ✅ -24.22% -7,780 ✅ -9.62%
private_kernel_reset_32_16_32_4_4_4_64_64_4 -11,544 ✅ -26.47% -16,856 ✅ -9.72%
private_kernel_reset_32_4_32_16_4_4_64_4_4 -11,304 ✅ -26.92% -16,469 ✅ -9.74%
private_kernel_reset_32_16_32_4_4_4_64_4_4 -11,304 ✅ -27.07% -16,436 ✅ -9.85%
private_kernel_reset_32_4_32_16_4_4_64_64_32 -13,168 ✅ -27.49% -18,093 ✅ -9.97%
private_kernel_reset_32_16_32_4_4_4_64_64_32 -13,168 ✅ -27.63% -18,060 ✅ -10.08%
private_kernel_reset_32_4_32_16_4_4_64_4_32 -12,928 ✅ -28.08% -17,673 ✅ -10.11%
private_kernel_reset_32_16_32_4_4_4_64_4_32 -12,928 ✅ -28.23% -17,640 ✅ -10.22%
private_kernel_reset_32_4_32_16_4_4_4_64_4 -11,364 ✅ -27.45% -16,574 ✅ -10.39%
private_kernel_reset_32_16_32_4_4_4_4_64_4 -11,364 ✅ -27.61% -16,541 ✅ -10.51%
private_kernel_reset_32_4_32_16_4_4_4_4_4 -11,124 ✅ -28.13% -16,154 ✅ -10.56%
private_kernel_reset_32_16_32_4_4_4_4_4_4 -11,124 ✅ -28.30% -16,121 ✅ -10.69%
private_kernel_reset_32_4_32_16_4_4_4_64_32 -12,988 ✅ -28.58% -17,778 ✅ -10.76%
private_kernel_reset_32_16_32_4_4_4_4_64_32 -12,988 ✅ -28.73% -17,745 ✅ -10.88%
private_kernel_reset_32_4_32_16_4_4_4_4_32 -12,748 ✅ -29.25% -17,358 ✅ -10.94%
private_kernel_reset_32_16_32_4_4_4_4_4_32 -12,748 ✅ -29.41% -17,325 ✅ -11.07%
private_kernel_reset_32_4_32_4_4_4_64_64_4 -11,016 ✅ -27.52% -15,863 ✅ -12.14%
private_kernel_reset_32_4_32_4_4_4_64_4_4 -10,776 ✅ -28.23% -15,443 ✅ -12.45%
private_kernel_reset_32_4_32_4_4_4_64_64_32 -12,640 ✅ -28.68% -17,067 ✅ -12.51%
private_kernel_reset_32_4_32_4_4_4_64_4_32 -12,400 ✅ -29.37% -16,647 ✅ -12.82%
private_kernel_reset_4_4_4_4_4_4_4_4_4 -9,924 ✅ -29.50% -14,204 ✅ -13.49%
private_kernel_reset_32_4_32_4_4_4_4_64_4 -10,836 ✅ -28.84% -15,548 ✅ -13.58%
private_kernel_reset_32_4_32_4_4_4_4_64_32 -12,460 ✅ -29.94% -16,752 ✅ -13.92%
private_kernel_reset_32_4_32_4_4_4_4_4_4 -10,596 ✅ -29.67% -15,128 ✅ -14.01%
private_kernel_reset_32_4_32_4_4_4_4_4_32 -12,220 ✅ -30.74% -16,332 ✅ -14.35%
private_kernel_reset_0_0_0_0_0_64_0_0_0 -10,167 ✅ -35.29% -16,092 ✅ -25.09%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
parity_base 3,713 (+174) +4.92% 30,108 (+174) +0.58%
parity_root 4,446 (+174) +4.07% 3,488,031 (+174) +0.00%
rollup_merge 1,866 (+58) +3.21% 1,800,422 (+58) +0.00%
rollup_root 30,963 (-387) -1.23% 14,593,616 (-542) -0.00%
rollup_block_merge 30,979 (-387) -1.23% 1,954,617 (-542) -0.03%
rollup_block_root_empty 1,926 (-128) -6.23% 880,217 (-258) -0.03%
rollup_base_private 138,588 (-25,847) -15.72% 1,772,609 (-39,412) -2.18%
private_kernel_reset_0_0_0_64_0_0_0_0_0 27,568 (-3,199) -10.40% 267,847 (-6,045) -2.21%
private_kernel_reset_0_0_0_0_64_0_0_0_0 13,667 (-1,471) -9.72% 94,698 (-2,139) -2.21%
rollup_base_public 366,995 (-39,231) -9.66% 3,236,013 (-73,948) -2.23%
private_kernel_reset_0_64_0_0_0_0_0_0_0 26,222 (-3,199) -10.87% 256,277 (-5,869) -2.24%
private_kernel_tail 4,416 (-557) -11.20% 26,424 (-686) -2.53%
rollup_block_root 477,479 (-106,488) -18.24% 4,062,878 (-142,439) -3.39%
rollup_block_root_single_tx 475,921 (-106,546) -18.29% 3,132,762 (-142,498) -4.35%
private_kernel_reset_0_0_64_0_0_0_0_0_0 11,374 (-1,151) -9.19% 34,663 (-1,629) -4.49%
private_kernel_reset_64_0_0_0_0_0_0_0_0 11,374 (-1,151) -9.19% 34,663 (-1,629) -4.49%
private_kernel_reset 72,232 (-22,215) -23.52% 612,754 (-34,850) -5.38%
private_kernel_tail_to_public 12,626 (-1,596) -11.22% 38,123 (-2,246) -5.56%
private_kernel_reset_32_32_32_32_32_32_32_32_32 47,641 (-16,355) -25.56% 336,681 (-23,904) -6.63%
private_kernel_init 18,196 (-4,426) -19.57% 39,420 (-2,989) -7.05%
private_kernel_reset_32_16_32_16_4_4_64_64_4 35,371 (-12,072) -25.45% 200,494 (-17,882) -8.19%
private_kernel_reset_32_16_32_16_4_4_64_4_4 33,754 (-11,832) -25.96% 194,348 (-17,462) -8.24%
private_kernel_reset_16_16_16_16_16_16_16_16_16 33,976 (-12,639) -27.11% 196,346 (-18,231) -8.50%
private_kernel_reset_32_16_32_16_4_4_64_64_32 37,788 (-13,696) -26.60% 205,103 (-19,086) -8.51%
private_kernel_reset_32_16_32_16_4_4_64_4_32 36,171 (-13,456) -27.11% 198,958 (-18,666) -8.58%
private_kernel_reset_32_16_32_16_4_4_4_64_4 33,093 (-11,892) -26.44% 184,700 (-17,567) -8.69%
private_kernel_reset_32_16_32_16_4_4_4_4_4 31,476 (-11,652) -27.02% 178,554 (-17,147) -8.76%
private_kernel_reset_32_16_32_16_4_4_4_64_32 35,510 (-13,516) -27.57% 189,310 (-18,771) -9.02%
private_kernel_reset_32_16_32_16_4_4_4_4_32 33,893 (-13,276) -28.15% 183,164 (-18,351) -9.11%
private_kernel_reset_32_4_32_16_4_4_64_64_4 32,311 (-11,544) -26.32% 158,701 (-16,889) -9.62%
private_kernel_inner 29,224 (-9,340) -24.22% 73,089 (-7,780) -9.62%
private_kernel_reset_32_16_32_4_4_4_64_64_4 32,075 (-11,544) -26.47% 156,572 (-16,856) -9.72%
private_kernel_reset_32_4_32_16_4_4_64_4_4 30,694 (-11,304) -26.92% 152,555 (-16,469) -9.74%
private_kernel_reset_32_16_32_4_4_4_64_4_4 30,458 (-11,304) -27.07% 150,426 (-16,436) -9.85%
private_kernel_reset_32_4_32_16_4_4_64_64_32 34,728 (-13,168) -27.49% 163,310 (-18,093) -9.97%
private_kernel_reset_32_16_32_4_4_4_64_64_32 34,492 (-13,168) -27.63% 161,181 (-18,060) -10.08%
private_kernel_reset_32_4_32_16_4_4_64_4_32 33,111 (-12,928) -28.08% 157,165 (-17,673) -10.11%
private_kernel_reset_32_16_32_4_4_4_64_4_32 32,875 (-12,928) -28.23% 155,036 (-17,640) -10.22%
private_kernel_reset_32_4_32_16_4_4_4_64_4 30,033 (-11,364) -27.45% 142,907 (-16,574) -10.39%
private_kernel_reset_32_16_32_4_4_4_4_64_4 29,797 (-11,364) -27.61% 140,778 (-16,541) -10.51%
private_kernel_reset_32_4_32_16_4_4_4_4_4 28,416 (-11,124) -28.13% 136,761 (-16,154) -10.56%
private_kernel_reset_32_16_32_4_4_4_4_4_4 28,180 (-11,124) -28.30% 134,632 (-16,121) -10.69%
private_kernel_reset_32_4_32_16_4_4_4_64_32 32,450 (-12,988) -28.58% 147,517 (-17,778) -10.76%
private_kernel_reset_32_16_32_4_4_4_4_64_32 32,214 (-12,988) -28.73% 145,388 (-17,745) -10.88%
private_kernel_reset_32_4_32_16_4_4_4_4_32 30,833 (-12,748) -29.25% 141,371 (-17,358) -10.94%
private_kernel_reset_32_16_32_4_4_4_4_4_32 30,597 (-12,748) -29.41% 139,242 (-17,325) -11.07%
private_kernel_reset_32_4_32_4_4_4_64_64_4 29,015 (-11,016) -27.52% 114,779 (-15,863) -12.14%
private_kernel_reset_32_4_32_4_4_4_64_4_4 27,398 (-10,776) -28.23% 108,633 (-15,443) -12.45%
private_kernel_reset_32_4_32_4_4_4_64_64_32 31,432 (-12,640) -28.68% 119,388 (-17,067) -12.51%
private_kernel_reset_32_4_32_4_4_4_64_4_32 29,815 (-12,400) -29.37% 113,243 (-16,647) -12.82%
private_kernel_reset_4_4_4_4_4_4_4_4_4 23,720 (-9,924) -29.50% 91,089 (-14,204) -13.49%
private_kernel_reset_32_4_32_4_4_4_4_64_4 26,737 (-10,836) -28.84% 98,985 (-15,548) -13.58%
private_kernel_reset_32_4_32_4_4_4_4_64_32 29,154 (-12,460) -29.94% 103,595 (-16,752) -13.92%
private_kernel_reset_32_4_32_4_4_4_4_4_4 25,120 (-10,596) -29.67% 92,839 (-15,128) -14.01%
private_kernel_reset_32_4_32_4_4_4_4_4_32 27,537 (-12,220) -30.74% 97,449 (-16,332) -14.35%
private_kernel_reset_0_0_0_0_0_64_0_0_0 18,644 (-10,167) -35.29% 48,052 (-16,092) -25.09%

…hem (noir-lang/noir#6913)

feat!: require trait primitive functions/calls to have their trait in scope (noir-lang/noir#6901)
feat(lsp): use trait method docs for trait impl method docs on hover (noir-lang/noir#7003)
chore: turn on averaging for protocol circuits metrics in CI (noir-lang/noir#6999)
feat(comptime): Implement to_be_bits and to_le_bits in the interpreter (noir-lang/noir#7008)
chore: Add short circuit in ssa-gen for known if conditions (noir-lang/noir#7007)
chore: Only resolved globals monomorphization (noir-lang/noir#7006)
chore: Remove resolve_is_unconstrained pass (noir-lang/noir#7004)
chore: require safety doc comment for unsafe instead of `//@safety` (noir-lang/noir#6992)
fix: Reproduce and fix bytecode blowup (noir-lang/noir#6972)
chore: mark casts as able to be deduplicated (noir-lang/noir#6996)
fix: return trait impl method as FuncId if there's only one (noir-lang/noir#6989)
chore(ci): fail properly in `external-repo-checks` (noir-lang/noir#6988)
fix: allow multiple trait impls for the same trait as long as one is in scope (noir-lang/noir#6987)
chore: Use DFG in SSA printer (noir-lang/noir#6986)
chore!: Reserve `enum` and `match` keywords (noir-lang/noir#6961)
…ng/noir#6913)

feat!: require trait primitive functions/calls to have their trait in scope (noir-lang/noir#6901)
feat(lsp): use trait method docs for trait impl method docs on hover (noir-lang/noir#7003)
chore: turn on averaging for protocol circuits metrics in CI (noir-lang/noir#6999)
feat(comptime): Implement to_be_bits and to_le_bits in the interpreter (noir-lang/noir#7008)
chore: Add short circuit in ssa-gen for known if conditions (noir-lang/noir#7007)
chore: Only resolved globals monomorphization (noir-lang/noir#7006)
chore: Remove resolve_is_unconstrained pass (noir-lang/noir#7004)
chore: require safety doc comment for unsafe instead of `//@safety` (noir-lang/noir#6992)
fix: Reproduce and fix bytecode blowup (noir-lang/noir#6972)
chore: mark casts as able to be deduplicated (noir-lang/noir#6996)
fix: return trait impl method as FuncId if there's only one (noir-lang/noir#6989)
chore(ci): fail properly in `external-repo-checks` (noir-lang/noir#6988)
fix: allow multiple trait impls for the same trait as long as one is in scope (noir-lang/noir#6987)
chore: Use DFG in SSA printer (noir-lang/noir#6986)
chore!: Reserve `enum` and `match` keywords (noir-lang/noir#6961)
@TomAFrench
Copy link
Member

@aakoshh we've got a few bytecde size regressions here. Can you take a look to see if they're new and interesting or similar to what we saw in nestwr_array_dynamic?

@aakoshh
Copy link
Contributor

aakoshh commented Jan 10, 2025

As far as I can see the only difference in the SSA in public_dispatch is two instances of this:

Screenshot 2025-01-10 at 14 46 12

It's the same for the Brillig opcodes shown by --print-acir, just two lines changed 🤔

@aakoshh
Copy link
Contributor

aakoshh commented Jan 10, 2025

I can't replicate the size difference 🙁

% git checkout 85d389fd8344f2a6cba04ab8d8bd577b9698a0ca                                                                                                                                   ~/aztec-packages/noir/noir-repo heads/sync-noir+ akosh-box
M	noir/noir-repo/compiler/noirc_driver/src/lib.rs
Previous HEAD position was f93468ffbf Merge branch 'master' into sync-noir
HEAD is now at 85d389fd83 feat: Kickoff tube circuits at the beginning of proving job (#11139)
% cargo run -q --release -p nargo_cli -- --program-dir $PROGRAM_DIR compile --package token_contract --skip-underconstrained-check --skip-brillig-constraints-check --force --silence-warnings
% cat $PROGRAM_DIR/target/token_contract-Token.json | jq -r '.functions[] | select(.name=="public_dispatch") | .bytecode | @base64d | length'                                             47s ~/aztec-packages/noir/noir-repo sync-noir^2+ akosh-box
44878
% cat $PROGRAM_DIR/target/token_contract-Token.json | jq -r '.functions[] | select(.name=="public_dispatch") | .bytecode' | base64 --decode | wc                                              ~/aztec-packages/noir/noir-repo sync-noir^2+ akosh-box
     90     751   47749
% git merge f93468f                                                                                                                                                                           ~/aztec-packages/noir/noir-repo sync-noir^2+ akosh-box
Updating 85d389fd83..f93468ffbf
Fast-forward
...
 117 files changed, 1271 insertions(+), 794 deletions(-)
 ...
% cargo run -q --release -p nargo_cli -- --program-dir $PROGRAM_DIR compile --package token_contract --skip-underconstrained-check --skip-brillig-constraints-check --force --silence-warnings
% cat $PROGRAM_DIR/target/token_contract-Token.json | jq -r '.functions[] | select(.name=="public_dispatch") | .bytecode | @base64d | length'                                             ~/aztec-packages/noir/noir-repo heads/sync-noir+ akosh-box
44929
% cat $PROGRAM_DIR/target/token_contract-Token.json | jq -r '.functions[] | select(.name=="public_dispatch") | .bytecode' | base64 --decode | wc                                          ~/aztec-packages/noir/noir-repo heads/sync-noir+ akosh-box
     93     810   47749
% node $PROGRAM_DIR/scripts/publicFunctionsSizeReport.js $PROGRAM_DIR/target                                                                                                              ~/aztec-packages/noir/noir-repo heads/sync-noir+ akosh-box
Writing to public_functions_report.json
% cat public_functions_report.json | jq -r '.programs[] | select(.package_name=="Token::public_dispatch") | .unconstrained_functions[0].opcodes'                                          ~/aztec-packages/noir/noir-repo heads/sync-noir+ akosh-box
47749

The byte code size is the same 🤷
I got the commits from 53bb1d4

chore: delete docs for versions which aren't used (noir-lang/noir#7020)
feat!: Disable mocks in `execute` (noir-lang/noir#6869)
chore(docs): backport 1.0.0-beta.0 doc fixes (noir-lang/noir#7014)
feat(cli): Add CLI option to filter by contract function name (noir-lang/noir#7018)
chore: Add more Field use info (noir-lang/noir#7019)
fix: let static_assert fail with the provided message (noir-lang/noir#7005)
chore: mark `aztec-nr` as expected to compile (noir-lang/noir#7015)
chore: clarity fix in docs (noir-lang/noir#7016)
fix: require generic trait impls to be in scope to call them (noir-lang/noir#6913)
feat!: require trait primitive functions/calls to have their trait in scope (noir-lang/noir#6901)
feat(lsp): use trait method docs for trait impl method docs on hover (noir-lang/noir#7003)
chore: turn on averaging for protocol circuits metrics in CI (noir-lang/noir#6999)
feat(comptime): Implement to_be_bits and to_le_bits in the interpreter (noir-lang/noir#7008)
chore: Add short circuit in ssa-gen for known if conditions (noir-lang/noir#7007)
chore: Only resolved globals monomorphization (noir-lang/noir#7006)
chore: Remove resolve_is_unconstrained pass (noir-lang/noir#7004)
chore: require safety doc comment for unsafe instead of `//@safety` (noir-lang/noir#6992)
fix: Reproduce and fix bytecode blowup (noir-lang/noir#6972)
chore: mark casts as able to be deduplicated (noir-lang/noir#6996)
fix: return trait impl method as FuncId if there's only one (noir-lang/noir#6989)
chore(ci): fail properly in `external-repo-checks` (noir-lang/noir#6988)
fix: allow multiple trait impls for the same trait as long as one is in scope (noir-lang/noir#6987)
chore: Use DFG in SSA printer (noir-lang/noir#6986)
chore!: Reserve `enum` and `match` keywords (noir-lang/noir#6961)
chore: delete docs for versions which aren't used (noir-lang/noir#7020)
feat!: Disable mocks in `execute` (noir-lang/noir#6869)
chore(docs): backport 1.0.0-beta.0 doc fixes (noir-lang/noir#7014)
feat(cli): Add CLI option to filter by contract function name (noir-lang/noir#7018)
chore: Add more Field use info (noir-lang/noir#7019)
fix: let static_assert fail with the provided message (noir-lang/noir#7005)
chore: mark `aztec-nr` as expected to compile (noir-lang/noir#7015)
chore: clarity fix in docs (noir-lang/noir#7016)
fix: require generic trait impls to be in scope to call them (noir-lang/noir#6913)
feat!: require trait primitive functions/calls to have their trait in scope (noir-lang/noir#6901)
feat(lsp): use trait method docs for trait impl method docs on hover (noir-lang/noir#7003)
chore: turn on averaging for protocol circuits metrics in CI (noir-lang/noir#6999)
feat(comptime): Implement to_be_bits and to_le_bits in the interpreter (noir-lang/noir#7008)
chore: Add short circuit in ssa-gen for known if conditions (noir-lang/noir#7007)
chore: Only resolved globals monomorphization (noir-lang/noir#7006)
chore: Remove resolve_is_unconstrained pass (noir-lang/noir#7004)
chore: require safety doc comment for unsafe instead of `//@safety` (noir-lang/noir#6992)
fix: Reproduce and fix bytecode blowup (noir-lang/noir#6972)
chore: mark casts as able to be deduplicated (noir-lang/noir#6996)
fix: return trait impl method as FuncId if there's only one (noir-lang/noir#6989)
chore(ci): fail properly in `external-repo-checks` (noir-lang/noir#6988)
fix: allow multiple trait impls for the same trait as long as one is in scope (noir-lang/noir#6987)
chore: Use DFG in SSA printer (noir-lang/noir#6986)
chore!: Reserve `enum` and `match` keywords (noir-lang/noir#6961)
@TomAFrench
Copy link
Member

hmm, I'll have a look at this as well.

@TomAFrench
Copy link
Member

@aakoshh your comment is showing a difference in bytecode size though?

@TomAFrench
Copy link
Member

@ludamad I'm getting a strange new error on boxes-test here. Any idea what's up?

TomAFrench and others added 4 commits January 10, 2025 20:50
…ang/noir#6985)

feat!: disallow calling unconstrained functions outside of `unsafe` blocks and passing unconstrained functions in place of constrained functions (noir-lang/noir#6938)
chore: simplify a couple of enum variants (noir-lang/noir#7025)
chore: disallow inserting ACIR-only instructions into brillig functions (noir-lang/noir#7017)
feat: unchecked math operations in SSA (noir-lang/noir#7011)
chore: delete docs for versions which aren't used (noir-lang/noir#7020)
feat!: Disable mocks in `execute` (noir-lang/noir#6869)
chore(docs): backport 1.0.0-beta.0 doc fixes (noir-lang/noir#7014)
feat(cli): Add CLI option to filter by contract function name (noir-lang/noir#7018)
chore: Add more Field use info (noir-lang/noir#7019)
fix: let static_assert fail with the provided message (noir-lang/noir#7005)
chore: mark `aztec-nr` as expected to compile (noir-lang/noir#7015)
chore: clarity fix in docs (noir-lang/noir#7016)
fix: require generic trait impls to be in scope to call them (noir-lang/noir#6913)
feat!: require trait primitive functions/calls to have their trait in scope (noir-lang/noir#6901)
feat(lsp): use trait method docs for trait impl method docs on hover (noir-lang/noir#7003)
chore: turn on averaging for protocol circuits metrics in CI (noir-lang/noir#6999)
feat(comptime): Implement to_be_bits and to_le_bits in the interpreter (noir-lang/noir#7008)
chore: Add short circuit in ssa-gen for known if conditions (noir-lang/noir#7007)
chore: Only resolved globals monomorphization (noir-lang/noir#7006)
chore: Remove resolve_is_unconstrained pass (noir-lang/noir#7004)
chore: require safety doc comment for unsafe instead of `//@safety` (noir-lang/noir#6992)
fix: Reproduce and fix bytecode blowup (noir-lang/noir#6972)
chore: mark casts as able to be deduplicated (noir-lang/noir#6996)
fix: return trait impl method as FuncId if there's only one (noir-lang/noir#6989)
chore(ci): fail properly in `external-repo-checks` (noir-lang/noir#6988)
fix: allow multiple trait impls for the same trait as long as one is in scope (noir-lang/noir#6987)
chore: Use DFG in SSA printer (noir-lang/noir#6986)
chore!: Reserve `enum` and `match` keywords (noir-lang/noir#6961)
feat!: disallow calling unconstrained functions outside of `unsafe` blocks and passing unconstrained functions in place of constrained functions (noir-lang/noir#6938)
chore: simplify a couple of enum variants (noir-lang/noir#7025)
chore: disallow inserting ACIR-only instructions into brillig functions (noir-lang/noir#7017)
feat: unchecked math operations in SSA (noir-lang/noir#7011)
chore: delete docs for versions which aren't used (noir-lang/noir#7020)
feat!: Disable mocks in `execute` (noir-lang/noir#6869)
chore(docs): backport 1.0.0-beta.0 doc fixes (noir-lang/noir#7014)
feat(cli): Add CLI option to filter by contract function name (noir-lang/noir#7018)
chore: Add more Field use info (noir-lang/noir#7019)
fix: let static_assert fail with the provided message (noir-lang/noir#7005)
chore: mark `aztec-nr` as expected to compile (noir-lang/noir#7015)
chore: clarity fix in docs (noir-lang/noir#7016)
fix: require generic trait impls to be in scope to call them (noir-lang/noir#6913)
feat!: require trait primitive functions/calls to have their trait in scope (noir-lang/noir#6901)
feat(lsp): use trait method docs for trait impl method docs on hover (noir-lang/noir#7003)
chore: turn on averaging for protocol circuits metrics in CI (noir-lang/noir#6999)
feat(comptime): Implement to_be_bits and to_le_bits in the interpreter (noir-lang/noir#7008)
chore: Add short circuit in ssa-gen for known if conditions (noir-lang/noir#7007)
chore: Only resolved globals monomorphization (noir-lang/noir#7006)
chore: Remove resolve_is_unconstrained pass (noir-lang/noir#7004)
chore: require safety doc comment for unsafe instead of `//@safety` (noir-lang/noir#6992)
fix: Reproduce and fix bytecode blowup (noir-lang/noir#6972)
chore: mark casts as able to be deduplicated (noir-lang/noir#6996)
fix: return trait impl method as FuncId if there's only one (noir-lang/noir#6989)
chore(ci): fail properly in `external-repo-checks` (noir-lang/noir#6988)
fix: allow multiple trait impls for the same trait as long as one is in scope (noir-lang/noir#6987)
chore: Use DFG in SSA printer (noir-lang/noir#6986)
chore!: Reserve `enum` and `match` keywords (noir-lang/noir#6961)
@TomAFrench TomAFrench merged commit 9189120 into master Jan 11, 2025
48 checks passed
@TomAFrench TomAFrench deleted the sync-noir branch January 11, 2025 13:31
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.

3 participants