-
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
chore(experimental): Add compiler option to enable the Elaborator #5003
Conversation
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.
LGTM, though it looks like there's some diffs duplicated from #4992
@michaeljklein Sorry about that - that's because the elaborator PR was merged into master and the target of this branch was redirected but with merge conflicts. Once the conflicts are fixed it should be ~1000 lines. |
Conflicts are fixed now |
…/noir#5012) chore(experimental): Add compiler option to enable the Elaborator (noir-lang/noir#5003) chore(experimental): Add Elaborator pass (noir-lang/noir#4992)
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE fix: Ignore no_predicates in brillig functions (noir-lang/noir#5012) chore(experimental): Add compiler option to enable the Elaborator (noir-lang/noir#5003) chore(experimental): Add Elaborator pass (noir-lang/noir#4992) END_COMMIT_OVERRIDE --------- Co-authored-by: sirasistant <sirasistant@gmail.com>
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.39.0</summary> ## [0.39.0](aztec-package-v0.38.0...aztec-package-v0.39.0) (2024-05-14) ### Features * **p2p:** GossibSub ([#6170](#6170)) ([98d32f1](98d32f1)), closes [#5055](#5055) * PublicKeys struct ([#6333](#6333)) ([2633cfc](2633cfc)) ### Miscellaneous * `CompleteAddress` cleanup ([#6300](#6300)) ([9c30759](9c30759)), closes [#5834](#5834) </details> <details><summary>barretenberg.js: 0.39.0</summary> ## [0.39.0](barretenberg.js-v0.38.0...barretenberg.js-v0.39.0) (2024-05-14) ### ⚠ BREAKING CHANGES * switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) ### Features * Switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) ([78adcc0](78adcc0)) </details> <details><summary>aztec-packages: 0.39.0</summary> ## [0.39.0](aztec-packages-v0.38.0...aztec-packages-v0.39.0) (2024-05-14) ### ⚠ BREAKING CHANGES * switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) * shared mutable configurable delays ([#6104](#6104)) * specify databus arrays for BB ([#6239](#6239)) ### Features * Add `Not` trait to stdlib (noir-lang/noir#4999) ([11cde44](11cde44)) * Add support for u16/i16 (noir-lang/noir#4985) ([11cde44](11cde44)) * Avm support for public input columns ([#5700](#5700)) ([8cf9168](8cf9168)) * **avm-simulator:** Add to_radix_le instruction ([#6308](#6308)) ([6374a32](6374a32)) * **avm-simulator:** Error stack tracking and enriching in AVM to match ACVM/ACIR-SIM ([#6289](#6289)) ([5c1f895](5c1f895)) * **aztec-nr:** Add 'with_gas()' function to avm call interface ([#6256](#6256)) ([0aedd23](0aedd23)) * **aztec-nr:** Add enqueue functions to AvmCallInterface ([#6264](#6264)) ([1c74387](1c74387)) * Build-images as earthly. ([#6194](#6194)) ([67fedf1](67fedf1)) * Div opcode ([#6053](#6053)) ([8e111f8](8e111f8)) * Encrypted log body ([#6251](#6251)) ([ba618d5](ba618d5)) * Enforce note hash read requests to read within own contract ([#6310](#6310)) ([bd10595](bd10595)) * Expose `set_as_fee_payer` and test it in e2e ([#6380](#6380)) ([a8274f3](a8274f3)) * Implement `ops` traits on `u16`/`i16` (noir-lang/noir#4996) ([11cde44](11cde44)) * Increase default expression width to 4 (noir-lang/noir#4995) ([11cde44](11cde44)) * Move abi demonomorphizer to noir_codegen and use noir_codegen in protocol types ([#6302](#6302)) ([690e500](690e500)) * Move to_radix to a blackbox ([#6294](#6294)) ([ac27376](ac27376)) * **p2p:** GossibSub ([#6170](#6170)) ([98d32f1](98d32f1)), closes [#5055](#5055) * Plumb fee payer ([#6286](#6286)) ([1f8fd1c](1f8fd1c)) * Private Kernel Recursion ([#6278](#6278)) ([eae5822](eae5822)) * Proper padding in ts AES and constrained AES in body and header computations ([#6269](#6269)) ([ef9cdde](ef9cdde)) * PublicKeys struct ([#6333](#6333)) ([2633cfc](2633cfc)) * Re-enabling authwit constraint ([#6323](#6323)) ([aa06d55](aa06d55)), closes [#5830](#5830) * Remove query to backend to get expression width (noir-lang/noir#4975) ([11cde44](11cde44)) * Replacing mentions to aztec-starter with codespace methods ([#6177](#6177)) ([63e8788](63e8788)) * Return gas usage per phase from node tx simulation ([#6255](#6255)) ([fb58dfc](fb58dfc)) * Shared mutable configurable delays ([#6104](#6104)) ([c191a40](c191a40)) * Small translator optimisations ([#6354](#6354)) ([ba6c42e](ba6c42e)) * Specify databus arrays for BB ([#6239](#6239)) ([01d9f24](01d9f24)) * Structured trace in client ivc ([#6132](#6132)) ([92c1478](92c1478)) * Switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) ([78adcc0](78adcc0)) * Sync from aztec-packages (noir-lang/noir#4993) ([11cde44](11cde44)) * ToRadix BB + avm transpiler support ([#6330](#6330)) ([c3c602f](c3c602f)) * **vm:** Reading kernel state opcodes ([#5739](#5739)) ([3250a8a](3250a8a)) ### Bug Fixes * `CombinedConstantData` not registered for serialization ([#6292](#6292)) ([89ab8ee](89ab8ee)) * **avm-context:** Enqueueing of public from private ([#6299](#6299)) ([bd2ccf0](bd2ccf0)) * **avm-simulator:** Always set revertReason when reverting ([#6297](#6297)) ([cc59981](cc59981)) * **avm-simulator:** Correctly create call stack in shallow assertions ([#6274](#6274)) ([f6045fd](f6045fd)) * **avm-simulator:** Fix env getters ([#6357](#6357)) ([485fe40](485fe40)) * **avm-simulator:** Fix message sender ([#6331](#6331)) ([f7e2d26](f7e2d26)) * **avm-simulator:** Fix test expectation ([#6293](#6293)) ([f51acfa](f51acfa)) * **avm-simulator:** Rethrow nested assertions ([#6275](#6275)) ([cd05b91](cd05b91)) * **avm-transpiler:** Patch debug infos with modified PCs ([#6371](#6371)) ([c36f0fa](c36f0fa)) * Check for public args in aztec functions ([#6355](#6355)) ([219efd6](219efd6)) * **ci:** Bench list ([#6282](#6282)) ([2652576](2652576)) * **circuits.js:** Fix nullifier non existent hints ([#6346](#6346)) ([297779a](297779a)) * **ci:** Stop mass serialization ([#6290](#6290)) ([60104e9](60104e9)) * Defer overflow checks for unsigned integers to acir-gen (noir-lang/noir#4832) ([11cde44](11cde44)) * Enable client proof tests ([#6249](#6249)) ([6d3a800](6d3a800)) * Ignore no_predicates in brillig functions (noir-lang/noir#5012) ([3cda21a](3cda21a)) * Noir_js import ([#6381](#6381)) ([e9c7e5f](e9c7e5f)) * Pw/update merge check ([#6201](#6201)) ([856657f](856657f)) * Run noir browser tests in series ([#6232](#6232)) ([e092514](e092514)) * Temporarily revert to_radix blackbox ([#6304](#6304)) ([044d0fe](044d0fe)) ### Miscellaneous * `CompleteAddress` cleanup ([#6300](#6300)) ([9c30759](9c30759)), closes [#5834](#5834) * Adding name shadowing tests template program (noir-lang/noir#4799) ([11cde44](11cde44)) * **avm-context:** Implement Empty ([#6303](#6303)) ([27534ac](27534ac)) * **avm-simulator:** Add U128 overflow tests to AVM simulator ([#6281](#6281)) ([5514143](5514143)) * Bump public bytecode size to 40000 in prep for AVM migration ([#6266](#6266)) ([2b61123](2b61123)) * Bump timeout for after-hook for data store test ([#6364](#6364)) ([18eca39](18eca39)) * **ci:** Fix master, better spot copy times ([#6374](#6374)) ([fee7649](fee7649)) * **ci:** Hotfix runner checks ([#6373](#6373)) ([d5fd668](d5fd668)) * **ci:** Reuse ssh connections ([#6382](#6382)) ([5f6c31e](5f6c31e)) * **ci:** Revert inline cache push for now ([#6318](#6318)) ([4c9bfb0](4c9bfb0)) * **ci:** Run clippy on benchmarks (noir-lang/noir#4988) ([11cde44](11cde44)) * **ci:** Run e2e on isolated spots ([#6287](#6287)) ([e7d2dd6](e7d2dd6)) * **ci:** Spot health fix, earthly workarounds ([#6379](#6379)) ([da7573c](da7573c)) * **ci:** Stability after spot changes ([#6367](#6367)) ([7ad4179](7ad4179)) * **ci:** Use on-demand runners ([#6311](#6311)) ([dba835d](dba835d)) * Deploying accounts after key registry ([#6322](#6322)) ([84878d1](84878d1)) * Disable `gates_report.yml` (noir-lang/noir#4997) ([11cde44](11cde44)) * **docs:** Update contract deployments page ([#6319](#6319)) ([2e331b5](2e331b5)) * **dsl:** Update backend gateCount command to query a Program in a single request ([#6228](#6228)) ([8079f60](8079f60)) * Enforce formatting of noir code ([#6271](#6271)) ([356f7bb](356f7bb)) * **experimental:** Add compiler option to enable the Elaborator (noir-lang/noir#5003) ([3cda21a](3cda21a)) * **experimental:** Add Elaborator pass (noir-lang/noir#4992) ([3cda21a](3cda21a)) * Make coinbase and fee_recipient inaccessible ([#6375](#6375)) ([ded28b7](ded28b7)) * Make MSM builder more explicit ([#6110](#6110)) ([40306b6](40306b6)) * Pw/refactor bb prover ([#6349](#6349)) ([8eb0398](8eb0398)) * Remove `bb info` command ([#6276](#6276)) ([f0a1c89](f0a1c89)) * Replace relative paths to noir-protocol-circuits ([fd40d99](fd40d99)) * Replace relative paths to noir-protocol-circuits ([53dbcb5](53dbcb5)) * Replace relative paths to noir-protocol-circuits ([48e07c3](48e07c3)) * Replace relative paths to noir-protocol-circuits ([6532725](6532725)) * Replace relative paths to noir-protocol-circuits ([8330f70](8330f70)) * Replace relative paths to noir-protocol-circuits ([484741a](484741a)) * Replacing old pub key oracle with get_ivpk_m ([#6219](#6219)) ([9acc9ec](9acc9ec)) * Siloing in tails ([#6167](#6167)) ([c20dd50](c20dd50)) * Simplify nargo CLI to read from artifacts ([#6279](#6279)) ([b2c019b](b2c019b)) * Skip formatting informattable comments ([#6288](#6288)) ([95b499b](95b499b)) * Split `ops` into `arith` and `bit` modules (noir-lang/noir#4989) ([11cde44](11cde44)) * **test-contracts:** Prepare e2e_token_contract+ error msgs for AVM migration ([#6307](#6307)) ([0c20f44](0c20f44)) * Update cspell for abi demonomorphizer ([#6258](#6258)) ([ce2d43c](ce2d43c)) * Update serialisation ([#6378](#6378)) ([527129d](527129d)) * Validating private call data ([#6316](#6316)) ([84b9fcd](84b9fcd)) ### Documentation * Call types ([#5472](#5472)) ([1ca0d28](1ca0d28)) * Re-add and update accounts docs ([#6345](#6345)) ([4926d15](4926d15)) * Updated protocol specs ([#6341](#6341)) ([a0f82db](a0f82db)) </details> <details><summary>barretenberg: 0.39.0</summary> ## [0.39.0](barretenberg-v0.38.0...barretenberg-v0.39.0) (2024-05-14) ### ⚠ BREAKING CHANGES * switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) * specify databus arrays for BB ([#6239](#6239)) ### Features * Avm support for public input columns ([#5700](#5700)) ([8cf9168](8cf9168)) * **avm-simulator:** Add to_radix_le instruction ([#6308](#6308)) ([6374a32](6374a32)) * Div opcode ([#6053](#6053)) ([8e111f8](8e111f8)) * Move to_radix to a blackbox ([#6294](#6294)) ([ac27376](ac27376)) * Small translator optimisations ([#6354](#6354)) ([ba6c42e](ba6c42e)) * Specify databus arrays for BB ([#6239](#6239)) ([01d9f24](01d9f24)) * Structured trace in client ivc ([#6132](#6132)) ([92c1478](92c1478)) * Switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) ([78adcc0](78adcc0)) * ToRadix BB + avm transpiler support ([#6330](#6330)) ([c3c602f](c3c602f)) * **vm:** Reading kernel state opcodes ([#5739](#5739)) ([3250a8a](3250a8a)) ### Bug Fixes * Temporarily revert to_radix blackbox ([#6304](#6304)) ([044d0fe](044d0fe)) ### Miscellaneous * **dsl:** Update backend gateCount command to query a Program in a single request ([#6228](#6228)) ([8079f60](8079f60)) * Make MSM builder more explicit ([#6110](#6110)) ([40306b6](40306b6)) * Remove `bb info` command ([#6276](#6276)) ([f0a1c89](f0a1c89)) * Update serialisation ([#6378](#6378)) ([527129d](527129d)) </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.39.0</summary> ## [0.39.0](AztecProtocol/aztec-packages@aztec-package-v0.38.0...aztec-package-v0.39.0) (2024-05-14) ### Features * **p2p:** GossibSub ([#6170](AztecProtocol/aztec-packages#6170)) ([98d32f1](AztecProtocol/aztec-packages@98d32f1)), closes [#5055](AztecProtocol/aztec-packages#5055) * PublicKeys struct ([#6333](AztecProtocol/aztec-packages#6333)) ([2633cfc](AztecProtocol/aztec-packages@2633cfc)) ### Miscellaneous * `CompleteAddress` cleanup ([#6300](AztecProtocol/aztec-packages#6300)) ([9c30759](AztecProtocol/aztec-packages@9c30759)), closes [#5834](AztecProtocol/aztec-packages#5834) </details> <details><summary>barretenberg.js: 0.39.0</summary> ## [0.39.0](AztecProtocol/aztec-packages@barretenberg.js-v0.38.0...barretenberg.js-v0.39.0) (2024-05-14) ### ⚠ BREAKING CHANGES * switch `bb` over to read ACIR from nargo artifacts ([#6283](AztecProtocol/aztec-packages#6283)) ### Features * Switch `bb` over to read ACIR from nargo artifacts ([#6283](AztecProtocol/aztec-packages#6283)) ([78adcc0](AztecProtocol/aztec-packages@78adcc0)) </details> <details><summary>aztec-packages: 0.39.0</summary> ## [0.39.0](AztecProtocol/aztec-packages@aztec-packages-v0.38.0...aztec-packages-v0.39.0) (2024-05-14) ### ⚠ BREAKING CHANGES * switch `bb` over to read ACIR from nargo artifacts ([#6283](AztecProtocol/aztec-packages#6283)) * shared mutable configurable delays ([#6104](AztecProtocol/aztec-packages#6104)) * specify databus arrays for BB ([#6239](AztecProtocol/aztec-packages#6239)) ### Features * Add `Not` trait to stdlib (noir-lang/noir#4999) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * Add support for u16/i16 (noir-lang/noir#4985) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * Avm support for public input columns ([#5700](AztecProtocol/aztec-packages#5700)) ([8cf9168](AztecProtocol/aztec-packages@8cf9168)) * **avm-simulator:** Add to_radix_le instruction ([#6308](AztecProtocol/aztec-packages#6308)) ([6374a32](AztecProtocol/aztec-packages@6374a32)) * **avm-simulator:** Error stack tracking and enriching in AVM to match ACVM/ACIR-SIM ([#6289](AztecProtocol/aztec-packages#6289)) ([5c1f895](AztecProtocol/aztec-packages@5c1f895)) * **aztec-nr:** Add 'with_gas()' function to avm call interface ([#6256](AztecProtocol/aztec-packages#6256)) ([0aedd23](AztecProtocol/aztec-packages@0aedd23)) * **aztec-nr:** Add enqueue functions to AvmCallInterface ([#6264](AztecProtocol/aztec-packages#6264)) ([1c74387](AztecProtocol/aztec-packages@1c74387)) * Build-images as earthly. ([#6194](AztecProtocol/aztec-packages#6194)) ([67fedf1](AztecProtocol/aztec-packages@67fedf1)) * Div opcode ([#6053](AztecProtocol/aztec-packages#6053)) ([8e111f8](AztecProtocol/aztec-packages@8e111f8)) * Encrypted log body ([#6251](AztecProtocol/aztec-packages#6251)) ([ba618d5](AztecProtocol/aztec-packages@ba618d5)) * Enforce note hash read requests to read within own contract ([#6310](AztecProtocol/aztec-packages#6310)) ([bd10595](AztecProtocol/aztec-packages@bd10595)) * Expose `set_as_fee_payer` and test it in e2e ([#6380](AztecProtocol/aztec-packages#6380)) ([a8274f3](AztecProtocol/aztec-packages@a8274f3)) * Implement `ops` traits on `u16`/`i16` (noir-lang/noir#4996) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * Increase default expression width to 4 (noir-lang/noir#4995) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * Move abi demonomorphizer to noir_codegen and use noir_codegen in protocol types ([#6302](AztecProtocol/aztec-packages#6302)) ([690e500](AztecProtocol/aztec-packages@690e500)) * Move to_radix to a blackbox ([#6294](AztecProtocol/aztec-packages#6294)) ([ac27376](AztecProtocol/aztec-packages@ac27376)) * **p2p:** GossibSub ([#6170](AztecProtocol/aztec-packages#6170)) ([98d32f1](AztecProtocol/aztec-packages@98d32f1)), closes [#5055](AztecProtocol/aztec-packages#5055) * Plumb fee payer ([#6286](AztecProtocol/aztec-packages#6286)) ([1f8fd1c](AztecProtocol/aztec-packages@1f8fd1c)) * Private Kernel Recursion ([#6278](AztecProtocol/aztec-packages#6278)) ([eae5822](AztecProtocol/aztec-packages@eae5822)) * Proper padding in ts AES and constrained AES in body and header computations ([#6269](AztecProtocol/aztec-packages#6269)) ([ef9cdde](AztecProtocol/aztec-packages@ef9cdde)) * PublicKeys struct ([#6333](AztecProtocol/aztec-packages#6333)) ([2633cfc](AztecProtocol/aztec-packages@2633cfc)) * Re-enabling authwit constraint ([#6323](AztecProtocol/aztec-packages#6323)) ([aa06d55](AztecProtocol/aztec-packages@aa06d55)), closes [#5830](AztecProtocol/aztec-packages#5830) * Remove query to backend to get expression width (noir-lang/noir#4975) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * Replacing mentions to aztec-starter with codespace methods ([#6177](AztecProtocol/aztec-packages#6177)) ([63e8788](AztecProtocol/aztec-packages@63e8788)) * Return gas usage per phase from node tx simulation ([#6255](AztecProtocol/aztec-packages#6255)) ([fb58dfc](AztecProtocol/aztec-packages@fb58dfc)) * Shared mutable configurable delays ([#6104](AztecProtocol/aztec-packages#6104)) ([c191a40](AztecProtocol/aztec-packages@c191a40)) * Small translator optimisations ([#6354](AztecProtocol/aztec-packages#6354)) ([ba6c42e](AztecProtocol/aztec-packages@ba6c42e)) * Specify databus arrays for BB ([#6239](AztecProtocol/aztec-packages#6239)) ([01d9f24](AztecProtocol/aztec-packages@01d9f24)) * Structured trace in client ivc ([#6132](AztecProtocol/aztec-packages#6132)) ([92c1478](AztecProtocol/aztec-packages@92c1478)) * Switch `bb` over to read ACIR from nargo artifacts ([#6283](AztecProtocol/aztec-packages#6283)) ([78adcc0](AztecProtocol/aztec-packages@78adcc0)) * Sync from aztec-packages (noir-lang/noir#4993) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * ToRadix BB + avm transpiler support ([#6330](AztecProtocol/aztec-packages#6330)) ([c3c602f](AztecProtocol/aztec-packages@c3c602f)) * **vm:** Reading kernel state opcodes ([#5739](AztecProtocol/aztec-packages#5739)) ([3250a8a](AztecProtocol/aztec-packages@3250a8a)) ### Bug Fixes * `CombinedConstantData` not registered for serialization ([#6292](AztecProtocol/aztec-packages#6292)) ([89ab8ee](AztecProtocol/aztec-packages@89ab8ee)) * **avm-context:** Enqueueing of public from private ([#6299](AztecProtocol/aztec-packages#6299)) ([bd2ccf0](AztecProtocol/aztec-packages@bd2ccf0)) * **avm-simulator:** Always set revertReason when reverting ([#6297](AztecProtocol/aztec-packages#6297)) ([cc59981](AztecProtocol/aztec-packages@cc59981)) * **avm-simulator:** Correctly create call stack in shallow assertions ([#6274](AztecProtocol/aztec-packages#6274)) ([f6045fd](AztecProtocol/aztec-packages@f6045fd)) * **avm-simulator:** Fix env getters ([#6357](AztecProtocol/aztec-packages#6357)) ([485fe40](AztecProtocol/aztec-packages@485fe40)) * **avm-simulator:** Fix message sender ([#6331](AztecProtocol/aztec-packages#6331)) ([f7e2d26](AztecProtocol/aztec-packages@f7e2d26)) * **avm-simulator:** Fix test expectation ([#6293](AztecProtocol/aztec-packages#6293)) ([f51acfa](AztecProtocol/aztec-packages@f51acfa)) * **avm-simulator:** Rethrow nested assertions ([#6275](AztecProtocol/aztec-packages#6275)) ([cd05b91](AztecProtocol/aztec-packages@cd05b91)) * **avm-transpiler:** Patch debug infos with modified PCs ([#6371](AztecProtocol/aztec-packages#6371)) ([c36f0fa](AztecProtocol/aztec-packages@c36f0fa)) * Check for public args in aztec functions ([#6355](AztecProtocol/aztec-packages#6355)) ([219efd6](AztecProtocol/aztec-packages@219efd6)) * **ci:** Bench list ([#6282](AztecProtocol/aztec-packages#6282)) ([2652576](AztecProtocol/aztec-packages@2652576)) * **circuits.js:** Fix nullifier non existent hints ([#6346](AztecProtocol/aztec-packages#6346)) ([297779a](AztecProtocol/aztec-packages@297779a)) * **ci:** Stop mass serialization ([#6290](AztecProtocol/aztec-packages#6290)) ([60104e9](AztecProtocol/aztec-packages@60104e9)) * Defer overflow checks for unsigned integers to acir-gen (noir-lang/noir#4832) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * Enable client proof tests ([#6249](AztecProtocol/aztec-packages#6249)) ([6d3a800](AztecProtocol/aztec-packages@6d3a800)) * Ignore no_predicates in brillig functions (noir-lang/noir#5012) ([3cda21a](AztecProtocol/aztec-packages@3cda21a)) * Noir_js import ([#6381](AztecProtocol/aztec-packages#6381)) ([e9c7e5f](AztecProtocol/aztec-packages@e9c7e5f)) * Pw/update merge check ([#6201](AztecProtocol/aztec-packages#6201)) ([856657f](AztecProtocol/aztec-packages@856657f)) * Run noir browser tests in series ([#6232](AztecProtocol/aztec-packages#6232)) ([e092514](AztecProtocol/aztec-packages@e092514)) * Temporarily revert to_radix blackbox ([#6304](AztecProtocol/aztec-packages#6304)) ([044d0fe](AztecProtocol/aztec-packages@044d0fe)) ### Miscellaneous * `CompleteAddress` cleanup ([#6300](AztecProtocol/aztec-packages#6300)) ([9c30759](AztecProtocol/aztec-packages@9c30759)), closes [#5834](AztecProtocol/aztec-packages#5834) * Adding name shadowing tests template program (noir-lang/noir#4799) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * **avm-context:** Implement Empty ([#6303](AztecProtocol/aztec-packages#6303)) ([27534ac](AztecProtocol/aztec-packages@27534ac)) * **avm-simulator:** Add U128 overflow tests to AVM simulator ([#6281](AztecProtocol/aztec-packages#6281)) ([5514143](AztecProtocol/aztec-packages@5514143)) * Bump public bytecode size to 40000 in prep for AVM migration ([#6266](AztecProtocol/aztec-packages#6266)) ([2b61123](AztecProtocol/aztec-packages@2b61123)) * Bump timeout for after-hook for data store test ([#6364](AztecProtocol/aztec-packages#6364)) ([18eca39](AztecProtocol/aztec-packages@18eca39)) * **ci:** Fix master, better spot copy times ([#6374](AztecProtocol/aztec-packages#6374)) ([fee7649](AztecProtocol/aztec-packages@fee7649)) * **ci:** Hotfix runner checks ([#6373](AztecProtocol/aztec-packages#6373)) ([d5fd668](AztecProtocol/aztec-packages@d5fd668)) * **ci:** Reuse ssh connections ([#6382](AztecProtocol/aztec-packages#6382)) ([5f6c31e](AztecProtocol/aztec-packages@5f6c31e)) * **ci:** Revert inline cache push for now ([#6318](AztecProtocol/aztec-packages#6318)) ([4c9bfb0](AztecProtocol/aztec-packages@4c9bfb0)) * **ci:** Run clippy on benchmarks (noir-lang/noir#4988) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * **ci:** Run e2e on isolated spots ([#6287](AztecProtocol/aztec-packages#6287)) ([e7d2dd6](AztecProtocol/aztec-packages@e7d2dd6)) * **ci:** Spot health fix, earthly workarounds ([#6379](AztecProtocol/aztec-packages#6379)) ([da7573c](AztecProtocol/aztec-packages@da7573c)) * **ci:** Stability after spot changes ([#6367](AztecProtocol/aztec-packages#6367)) ([7ad4179](AztecProtocol/aztec-packages@7ad4179)) * **ci:** Use on-demand runners ([#6311](AztecProtocol/aztec-packages#6311)) ([dba835d](AztecProtocol/aztec-packages@dba835d)) * Deploying accounts after key registry ([#6322](AztecProtocol/aztec-packages#6322)) ([84878d1](AztecProtocol/aztec-packages@84878d1)) * Disable `gates_report.yml` (noir-lang/noir#4997) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * **docs:** Update contract deployments page ([#6319](AztecProtocol/aztec-packages#6319)) ([2e331b5](AztecProtocol/aztec-packages@2e331b5)) * **dsl:** Update backend gateCount command to query a Program in a single request ([#6228](AztecProtocol/aztec-packages#6228)) ([8079f60](AztecProtocol/aztec-packages@8079f60)) * Enforce formatting of noir code ([#6271](AztecProtocol/aztec-packages#6271)) ([356f7bb](AztecProtocol/aztec-packages@356f7bb)) * **experimental:** Add compiler option to enable the Elaborator (noir-lang/noir#5003) ([3cda21a](AztecProtocol/aztec-packages@3cda21a)) * **experimental:** Add Elaborator pass (noir-lang/noir#4992) ([3cda21a](AztecProtocol/aztec-packages@3cda21a)) * Make coinbase and fee_recipient inaccessible ([#6375](AztecProtocol/aztec-packages#6375)) ([ded28b7](AztecProtocol/aztec-packages@ded28b7)) * Make MSM builder more explicit ([#6110](AztecProtocol/aztec-packages#6110)) ([40306b6](AztecProtocol/aztec-packages@40306b6)) * Pw/refactor bb prover ([#6349](AztecProtocol/aztec-packages#6349)) ([8eb0398](AztecProtocol/aztec-packages@8eb0398)) * Remove `bb info` command ([#6276](AztecProtocol/aztec-packages#6276)) ([f0a1c89](AztecProtocol/aztec-packages@f0a1c89)) * Replace relative paths to noir-protocol-circuits ([fd40d99](AztecProtocol/aztec-packages@fd40d99)) * Replace relative paths to noir-protocol-circuits ([53dbcb5](AztecProtocol/aztec-packages@53dbcb5)) * Replace relative paths to noir-protocol-circuits ([48e07c3](AztecProtocol/aztec-packages@48e07c3)) * Replace relative paths to noir-protocol-circuits ([6532725](AztecProtocol/aztec-packages@6532725)) * Replace relative paths to noir-protocol-circuits ([8330f70](AztecProtocol/aztec-packages@8330f70)) * Replace relative paths to noir-protocol-circuits ([484741a](AztecProtocol/aztec-packages@484741a)) * Replacing old pub key oracle with get_ivpk_m ([#6219](AztecProtocol/aztec-packages#6219)) ([9acc9ec](AztecProtocol/aztec-packages@9acc9ec)) * Siloing in tails ([#6167](AztecProtocol/aztec-packages#6167)) ([c20dd50](AztecProtocol/aztec-packages@c20dd50)) * Simplify nargo CLI to read from artifacts ([#6279](AztecProtocol/aztec-packages#6279)) ([b2c019b](AztecProtocol/aztec-packages@b2c019b)) * Skip formatting informattable comments ([#6288](AztecProtocol/aztec-packages#6288)) ([95b499b](AztecProtocol/aztec-packages@95b499b)) * Split `ops` into `arith` and `bit` modules (noir-lang/noir#4989) ([11cde44](AztecProtocol/aztec-packages@11cde44)) * **test-contracts:** Prepare e2e_token_contract+ error msgs for AVM migration ([#6307](AztecProtocol/aztec-packages#6307)) ([0c20f44](AztecProtocol/aztec-packages@0c20f44)) * Update cspell for abi demonomorphizer ([#6258](AztecProtocol/aztec-packages#6258)) ([ce2d43c](AztecProtocol/aztec-packages@ce2d43c)) * Update serialisation ([#6378](AztecProtocol/aztec-packages#6378)) ([527129d](AztecProtocol/aztec-packages@527129d)) * Validating private call data ([#6316](AztecProtocol/aztec-packages#6316)) ([84b9fcd](AztecProtocol/aztec-packages@84b9fcd)) ### Documentation * Call types ([#5472](AztecProtocol/aztec-packages#5472)) ([1ca0d28](AztecProtocol/aztec-packages@1ca0d28)) * Re-add and update accounts docs ([#6345](AztecProtocol/aztec-packages#6345)) ([4926d15](AztecProtocol/aztec-packages@4926d15)) * Updated protocol specs ([#6341](AztecProtocol/aztec-packages#6341)) ([a0f82db](AztecProtocol/aztec-packages@a0f82db)) </details> <details><summary>barretenberg: 0.39.0</summary> ## [0.39.0](AztecProtocol/aztec-packages@barretenberg-v0.38.0...barretenberg-v0.39.0) (2024-05-14) ### ⚠ BREAKING CHANGES * switch `bb` over to read ACIR from nargo artifacts ([#6283](AztecProtocol/aztec-packages#6283)) * specify databus arrays for BB ([#6239](AztecProtocol/aztec-packages#6239)) ### Features * Avm support for public input columns ([#5700](AztecProtocol/aztec-packages#5700)) ([8cf9168](AztecProtocol/aztec-packages@8cf9168)) * **avm-simulator:** Add to_radix_le instruction ([#6308](AztecProtocol/aztec-packages#6308)) ([6374a32](AztecProtocol/aztec-packages@6374a32)) * Div opcode ([#6053](AztecProtocol/aztec-packages#6053)) ([8e111f8](AztecProtocol/aztec-packages@8e111f8)) * Move to_radix to a blackbox ([#6294](AztecProtocol/aztec-packages#6294)) ([ac27376](AztecProtocol/aztec-packages@ac27376)) * Small translator optimisations ([#6354](AztecProtocol/aztec-packages#6354)) ([ba6c42e](AztecProtocol/aztec-packages@ba6c42e)) * Specify databus arrays for BB ([#6239](AztecProtocol/aztec-packages#6239)) ([01d9f24](AztecProtocol/aztec-packages@01d9f24)) * Structured trace in client ivc ([#6132](AztecProtocol/aztec-packages#6132)) ([92c1478](AztecProtocol/aztec-packages@92c1478)) * Switch `bb` over to read ACIR from nargo artifacts ([#6283](AztecProtocol/aztec-packages#6283)) ([78adcc0](AztecProtocol/aztec-packages@78adcc0)) * ToRadix BB + avm transpiler support ([#6330](AztecProtocol/aztec-packages#6330)) ([c3c602f](AztecProtocol/aztec-packages@c3c602f)) * **vm:** Reading kernel state opcodes ([#5739](AztecProtocol/aztec-packages#5739)) ([3250a8a](AztecProtocol/aztec-packages@3250a8a)) ### Bug Fixes * Temporarily revert to_radix blackbox ([#6304](AztecProtocol/aztec-packages#6304)) ([044d0fe](AztecProtocol/aztec-packages@044d0fe)) ### Miscellaneous * **dsl:** Update backend gateCount command to query a Program in a single request ([#6228](AztecProtocol/aztec-packages#6228)) ([8079f60](AztecProtocol/aztec-packages@8079f60)) * Make MSM builder more explicit ([#6110](AztecProtocol/aztec-packages#6110)) ([40306b6](AztecProtocol/aztec-packages@40306b6)) * Remove `bb info` command ([#6276](AztecProtocol/aztec-packages#6276)) ([f0a1c89](AztecProtocol/aztec-packages@f0a1c89)) * Update serialisation ([#6378](AztecProtocol/aztec-packages#6378)) ([527129d](AztecProtocol/aztec-packages@527129d)) </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.39.0</summary> ## [0.39.0](aztec-package-v0.38.0...aztec-package-v0.39.0) (2024-05-14) ### Features * **p2p:** GossibSub ([#6170](#6170)) ([98d32f1](98d32f1)), closes [#5055](#5055) * PublicKeys struct ([#6333](#6333)) ([2633cfc](2633cfc)) ### Miscellaneous * `CompleteAddress` cleanup ([#6300](#6300)) ([9c30759](9c30759)), closes [#5834](#5834) </details> <details><summary>barretenberg.js: 0.39.0</summary> ## [0.39.0](barretenberg.js-v0.38.0...barretenberg.js-v0.39.0) (2024-05-14) ### ⚠ BREAKING CHANGES * switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) ### Features * Switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) ([78adcc0](78adcc0)) </details> <details><summary>aztec-packages: 0.39.0</summary> ## [0.39.0](aztec-packages-v0.38.0...aztec-packages-v0.39.0) (2024-05-14) ### ⚠ BREAKING CHANGES * switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) * shared mutable configurable delays ([#6104](#6104)) * specify databus arrays for BB ([#6239](#6239)) ### Features * Add `Not` trait to stdlib (noir-lang/noir#4999) ([11cde44](11cde44)) * Add support for u16/i16 (noir-lang/noir#4985) ([11cde44](11cde44)) * Avm support for public input columns ([#5700](#5700)) ([8cf9168](8cf9168)) * **avm-simulator:** Add to_radix_le instruction ([#6308](#6308)) ([6374a32](6374a32)) * **avm-simulator:** Error stack tracking and enriching in AVM to match ACVM/ACIR-SIM ([#6289](#6289)) ([5c1f895](5c1f895)) * **aztec-nr:** Add 'with_gas()' function to avm call interface ([#6256](#6256)) ([0aedd23](0aedd23)) * **aztec-nr:** Add enqueue functions to AvmCallInterface ([#6264](#6264)) ([1c74387](1c74387)) * Build-images as earthly. ([#6194](#6194)) ([67fedf1](67fedf1)) * Div opcode ([#6053](#6053)) ([8e111f8](8e111f8)) * Encrypted log body ([#6251](#6251)) ([ba618d5](ba618d5)) * Enforce note hash read requests to read within own contract ([#6310](#6310)) ([bd10595](bd10595)) * Expose `set_as_fee_payer` and test it in e2e ([#6380](#6380)) ([a8274f3](a8274f3)) * Implement `ops` traits on `u16`/`i16` (noir-lang/noir#4996) ([11cde44](11cde44)) * Increase default expression width to 4 (noir-lang/noir#4995) ([11cde44](11cde44)) * Move abi demonomorphizer to noir_codegen and use noir_codegen in protocol types ([#6302](#6302)) ([690e500](690e500)) * Move to_radix to a blackbox ([#6294](#6294)) ([ac27376](ac27376)) * **p2p:** GossibSub ([#6170](#6170)) ([98d32f1](98d32f1)), closes [#5055](#5055) * Plumb fee payer ([#6286](#6286)) ([1f8fd1c](1f8fd1c)) * Private Kernel Recursion ([#6278](#6278)) ([eae5822](eae5822)) * Proper padding in ts AES and constrained AES in body and header computations ([#6269](#6269)) ([ef9cdde](ef9cdde)) * PublicKeys struct ([#6333](#6333)) ([2633cfc](2633cfc)) * Re-enabling authwit constraint ([#6323](#6323)) ([aa06d55](aa06d55)), closes [#5830](#5830) * Remove query to backend to get expression width (noir-lang/noir#4975) ([11cde44](11cde44)) * Replacing mentions to aztec-starter with codespace methods ([#6177](#6177)) ([63e8788](63e8788)) * Return gas usage per phase from node tx simulation ([#6255](#6255)) ([fb58dfc](fb58dfc)) * Shared mutable configurable delays ([#6104](#6104)) ([c191a40](c191a40)) * Small translator optimisations ([#6354](#6354)) ([ba6c42e](ba6c42e)) * Specify databus arrays for BB ([#6239](#6239)) ([01d9f24](01d9f24)) * Structured trace in client ivc ([#6132](#6132)) ([92c1478](92c1478)) * Switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) ([78adcc0](78adcc0)) * Sync from aztec-packages (noir-lang/noir#4993) ([11cde44](11cde44)) * ToRadix BB + avm transpiler support ([#6330](#6330)) ([c3c602f](c3c602f)) * **vm:** Reading kernel state opcodes ([#5739](#5739)) ([3250a8a](3250a8a)) ### Bug Fixes * `CombinedConstantData` not registered for serialization ([#6292](#6292)) ([89ab8ee](89ab8ee)) * **avm-context:** Enqueueing of public from private ([#6299](#6299)) ([bd2ccf0](bd2ccf0)) * **avm-simulator:** Always set revertReason when reverting ([#6297](#6297)) ([cc59981](cc59981)) * **avm-simulator:** Correctly create call stack in shallow assertions ([#6274](#6274)) ([f6045fd](f6045fd)) * **avm-simulator:** Fix env getters ([#6357](#6357)) ([485fe40](485fe40)) * **avm-simulator:** Fix message sender ([#6331](#6331)) ([f7e2d26](f7e2d26)) * **avm-simulator:** Fix test expectation ([#6293](#6293)) ([f51acfa](f51acfa)) * **avm-simulator:** Rethrow nested assertions ([#6275](#6275)) ([cd05b91](cd05b91)) * **avm-transpiler:** Patch debug infos with modified PCs ([#6371](#6371)) ([c36f0fa](c36f0fa)) * Check for public args in aztec functions ([#6355](#6355)) ([219efd6](219efd6)) * **ci:** Bench list ([#6282](#6282)) ([2652576](2652576)) * **circuits.js:** Fix nullifier non existent hints ([#6346](#6346)) ([297779a](297779a)) * **ci:** Stop mass serialization ([#6290](#6290)) ([60104e9](60104e9)) * Defer overflow checks for unsigned integers to acir-gen (noir-lang/noir#4832) ([11cde44](11cde44)) * Enable client proof tests ([#6249](#6249)) ([6d3a800](6d3a800)) * Ignore no_predicates in brillig functions (noir-lang/noir#5012) ([3cda21a](3cda21a)) * Noir_js import ([#6381](#6381)) ([e9c7e5f](e9c7e5f)) * Pw/update merge check ([#6201](#6201)) ([856657f](856657f)) * Run noir browser tests in series ([#6232](#6232)) ([e092514](e092514)) * Temporarily revert to_radix blackbox ([#6304](#6304)) ([044d0fe](044d0fe)) ### Miscellaneous * `CompleteAddress` cleanup ([#6300](#6300)) ([9c30759](9c30759)), closes [#5834](#5834) * Adding name shadowing tests template program (noir-lang/noir#4799) ([11cde44](11cde44)) * **avm-context:** Implement Empty ([#6303](#6303)) ([27534ac](27534ac)) * **avm-simulator:** Add U128 overflow tests to AVM simulator ([#6281](#6281)) ([5514143](5514143)) * Bump public bytecode size to 40000 in prep for AVM migration ([#6266](#6266)) ([2b61123](2b61123)) * Bump timeout for after-hook for data store test ([#6364](#6364)) ([18eca39](18eca39)) * **ci:** Fix master, better spot copy times ([#6374](#6374)) ([fee7649](fee7649)) * **ci:** Hotfix runner checks ([#6373](#6373)) ([d5fd668](d5fd668)) * **ci:** Reuse ssh connections ([#6382](#6382)) ([5f6c31e](5f6c31e)) * **ci:** Revert inline cache push for now ([#6318](#6318)) ([4c9bfb0](4c9bfb0)) * **ci:** Run clippy on benchmarks (noir-lang/noir#4988) ([11cde44](11cde44)) * **ci:** Run e2e on isolated spots ([#6287](#6287)) ([e7d2dd6](e7d2dd6)) * **ci:** Spot health fix, earthly workarounds ([#6379](#6379)) ([da7573c](da7573c)) * **ci:** Stability after spot changes ([#6367](#6367)) ([7ad4179](7ad4179)) * **ci:** Use on-demand runners ([#6311](#6311)) ([dba835d](dba835d)) * Deploying accounts after key registry ([#6322](#6322)) ([84878d1](84878d1)) * Disable `gates_report.yml` (noir-lang/noir#4997) ([11cde44](11cde44)) * **docs:** Update contract deployments page ([#6319](#6319)) ([2e331b5](2e331b5)) * **dsl:** Update backend gateCount command to query a Program in a single request ([#6228](#6228)) ([8079f60](8079f60)) * Enforce formatting of noir code ([#6271](#6271)) ([356f7bb](356f7bb)) * **experimental:** Add compiler option to enable the Elaborator (noir-lang/noir#5003) ([3cda21a](3cda21a)) * **experimental:** Add Elaborator pass (noir-lang/noir#4992) ([3cda21a](3cda21a)) * Make coinbase and fee_recipient inaccessible ([#6375](#6375)) ([ded28b7](ded28b7)) * Make MSM builder more explicit ([#6110](#6110)) ([40306b6](40306b6)) * Pw/refactor bb prover ([#6349](#6349)) ([8eb0398](8eb0398)) * Remove `bb info` command ([#6276](#6276)) ([f0a1c89](f0a1c89)) * Replace relative paths to noir-protocol-circuits ([fd40d99](fd40d99)) * Replace relative paths to noir-protocol-circuits ([53dbcb5](53dbcb5)) * Replace relative paths to noir-protocol-circuits ([48e07c3](48e07c3)) * Replace relative paths to noir-protocol-circuits ([6532725](6532725)) * Replace relative paths to noir-protocol-circuits ([8330f70](8330f70)) * Replace relative paths to noir-protocol-circuits ([484741a](484741a)) * Replacing old pub key oracle with get_ivpk_m ([#6219](#6219)) ([9acc9ec](9acc9ec)) * Siloing in tails ([#6167](#6167)) ([c20dd50](c20dd50)) * Simplify nargo CLI to read from artifacts ([#6279](#6279)) ([b2c019b](b2c019b)) * Skip formatting informattable comments ([#6288](#6288)) ([95b499b](95b499b)) * Split `ops` into `arith` and `bit` modules (noir-lang/noir#4989) ([11cde44](11cde44)) * **test-contracts:** Prepare e2e_token_contract+ error msgs for AVM migration ([#6307](#6307)) ([0c20f44](0c20f44)) * Update cspell for abi demonomorphizer ([#6258](#6258)) ([ce2d43c](ce2d43c)) * Update serialisation ([#6378](#6378)) ([527129d](527129d)) * Validating private call data ([#6316](#6316)) ([84b9fcd](84b9fcd)) ### Documentation * Call types ([#5472](#5472)) ([1ca0d28](1ca0d28)) * Re-add and update accounts docs ([#6345](#6345)) ([4926d15](4926d15)) * Updated protocol specs ([#6341](#6341)) ([a0f82db](a0f82db)) </details> <details><summary>barretenberg: 0.39.0</summary> ## [0.39.0](barretenberg-v0.38.0...barretenberg-v0.39.0) (2024-05-14) ### ⚠ BREAKING CHANGES * switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) * specify databus arrays for BB ([#6239](#6239)) ### Features * Avm support for public input columns ([#5700](#5700)) ([8cf9168](8cf9168)) * **avm-simulator:** Add to_radix_le instruction ([#6308](#6308)) ([6374a32](6374a32)) * Div opcode ([#6053](#6053)) ([8e111f8](8e111f8)) * Move to_radix to a blackbox ([#6294](#6294)) ([ac27376](ac27376)) * Small translator optimisations ([#6354](#6354)) ([ba6c42e](ba6c42e)) * Specify databus arrays for BB ([#6239](#6239)) ([01d9f24](01d9f24)) * Structured trace in client ivc ([#6132](#6132)) ([92c1478](92c1478)) * Switch `bb` over to read ACIR from nargo artifacts ([#6283](#6283)) ([78adcc0](78adcc0)) * ToRadix BB + avm transpiler support ([#6330](#6330)) ([c3c602f](c3c602f)) * **vm:** Reading kernel state opcodes ([#5739](#5739)) ([3250a8a](3250a8a)) ### Bug Fixes * Temporarily revert to_radix blackbox ([#6304](#6304)) ([044d0fe](044d0fe)) ### Miscellaneous * **dsl:** Update backend gateCount command to query a Program in a single request ([#6228](#6228)) ([8079f60](8079f60)) * Make MSM builder more explicit ([#6110](#6110)) ([40306b6](40306b6)) * Remove `bb info` command ([#6276](#6276)) ([f0a1c89](f0a1c89)) * Update serialisation ([#6378](#6378)) ([527129d](527129d)) </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*
Working towards #4594
Summary*
Adds a hidden compiler option
--use-elaborator
to enable the experimental elaborator code to be run on a codebase.This also connects the elaborator with
dc_crate
(and thus the cli flag above) by filling in the stub for elaborating functions. Filling in the stub required quite a bit of code but it was as usual just copied from name resolution and type checking.Additional Context
Originally I wanted to connect the elaborator to more of the frontend (e.g. resolve globals, types, traits, etc) but this already ballooned to a large line count. To review I'd recommend reviewing the non-elaborator portions first then just skimming through the elaborator portions since they are copied from
Resolver::resolve_function
,Resolver::extract_meta
,Resolver::intern_function
, andtype_check_func
.Documentation*
Check one:
PR Checklist*
cargo fmt
on default settings.