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

chore: enable constant inputs for more blackbox #5647

Merged
merged 6 commits into from
Aug 21, 2024
Merged

Conversation

guipublic
Copy link
Contributor

Description

Problem*

We create witness for blackbox inputs, even when the value is constant, which generates un-optimal circuit.

Summary*

Some blackbox can now support constant inputs (cf. PR AztecProtocol/aztec-packages#7613) so we enable the use of constant inputs for them.

Additional Context

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

@guipublic guipublic requested a review from vezenovm July 31, 2024 11:15
@vezenovm
Copy link
Contributor

Looks like we are getting an assertion failure inside the backend for the gates diff action.

Copy link
Contributor

github-actions bot commented Aug 21, 2024

Changes to Brillig bytecode sizes

Generated at commit: 6d29bf7393fb8b265a0e31d254319edb22bd2ada, compared to commit: eba5312e65ec77f057ad17ac0fdbcd7fdbc3dc93

There are no changes in circuit sizes

Copy link
Contributor

github-actions bot commented Aug 21, 2024

Changes to circuit sizes

Generated at commit: 6d29bf7393fb8b265a0e31d254319edb22bd2ada, compared to commit: eba5312e65ec77f057ad17ac0fdbcd7fdbc3dc93

🧾 Summary (10% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
sha256 -10 ✅ -6.62% -184 ✅ -0.47%
regression_4449 -11 ✅ -0.18% -11,281 ✅ -4.03%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
sha2_byte 15,891 (-15) -0.09% 82,908 (-252) -0.30%
keccak256 137 (-2) -1.44% 54,870 (-192) -0.35%
sha256 141 (-10) -6.62% 38,720 (-184) -0.47%
regression_4449 6,087 (-11) -0.18% 268,578 (-11,281) -4.03%

@TomAFrench TomAFrench added this pull request to the merge queue Aug 21, 2024
Merged via the queue into master with commit d995e06 Aug 21, 2024
47 checks passed
@TomAFrench TomAFrench deleted the gd/constant_input branch August 21, 2024 13:18
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 22, 2024
…r-lang/noir#5784)

feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 23, 2024
…ents (noir-lang/noir#5795)

feat: Explicit Associated Types & Constants (noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field` (noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check (noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon` (noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 23, 2024
…ang/noir#5795)

feat: Explicit Associated Types & Constants (noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field` (noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check (noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon` (noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 24, 2024
…5802)

chore: Add comptime docs (noir-lang/noir#5800)
fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (noir-lang/noir#5788)
fix(acir_gen): Nested dynamic array initialization (noir-lang/noir#5810)
fix: honor function visibility in LSP completion (noir-lang/noir#5809)
feat: LSP completion now works better in the middle of idents (noir-lang/noir#5795)
feat: Explicit Associated Types & Constants (noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field` (noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check (noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon` (noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 24, 2024
chore: Add comptime docs (noir-lang/noir#5800)
fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (noir-lang/noir#5788)
fix(acir_gen): Nested dynamic array initialization (noir-lang/noir#5810)
fix: honor function visibility in LSP completion (noir-lang/noir#5809)
feat: LSP completion now works better in the middle of idents (noir-lang/noir#5795)
feat: Explicit Associated Types & Constants (noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field` (noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check (noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon` (noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 25, 2024
…5802)

chore: Add comptime docs (noir-lang/noir#5800)
fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (noir-lang/noir#5788)
fix(acir_gen): Nested dynamic array initialization (noir-lang/noir#5810)
fix: honor function visibility in LSP completion (noir-lang/noir#5809)
feat: LSP completion now works better in the middle of idents (noir-lang/noir#5795)
feat: Explicit Associated Types & Constants (noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field` (noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check (noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon` (noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 25, 2024
chore: Add comptime docs (noir-lang/noir#5800)
fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (noir-lang/noir#5788)
fix(acir_gen): Nested dynamic array initialization (noir-lang/noir#5810)
fix: honor function visibility in LSP completion (noir-lang/noir#5809)
feat: LSP completion now works better in the middle of idents (noir-lang/noir#5795)
feat: Explicit Associated Types & Constants (noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field` (noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check (noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon` (noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 26, 2024
…5802)

chore: Add comptime docs (noir-lang/noir#5800)
fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (noir-lang/noir#5788)
fix(acir_gen): Nested dynamic array initialization (noir-lang/noir#5810)
fix: honor function visibility in LSP completion (noir-lang/noir#5809)
feat: LSP completion now works better in the middle of idents (noir-lang/noir#5795)
feat: Explicit Associated Types & Constants (noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field` (noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check (noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon` (noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 26, 2024
chore: Add comptime docs (noir-lang/noir#5800)
fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (noir-lang/noir#5788)
fix(acir_gen): Nested dynamic array initialization (noir-lang/noir#5810)
fix: honor function visibility in LSP completion (noir-lang/noir#5809)
feat: LSP completion now works better in the middle of idents (noir-lang/noir#5795)
feat: Explicit Associated Types & Constants (noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field` (noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check (noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon` (noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 27, 2024
feat: Improve "type annotations needed" errors (noir-lang/noir#5830)
chore: enum dummy ID for `FuncId` in monomorphizer and docstring fixes (noir-lang/noir#5421)
chore: delete wip fuzzing files that got accidentally added  (noir-lang/noir#5829)
chore: test ACVM `BigInt` (noir-lang/noir#5559)
fix(docs): Fix file paths for metaprogramming docs (noir-lang/noir#5826)
fix: bit shifting type checking (noir-lang/noir#5824)
feat: add Expr::as_method_call (noir-lang/noir#5822)
chore: Fix docs typo (noir-lang/noir#5821)
feat: add `UnresolvedType::is_field` and `Expr::as_assign` (noir-lang/noir#5804)
chore: Add docs for each comptime method (noir-lang/noir#5802)
chore: Add comptime docs (noir-lang/noir#5800)
fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (noir-lang/noir#5788)
fix(acir_gen): Nested dynamic array initialization (noir-lang/noir#5810)
fix: honor function visibility in LSP completion (noir-lang/noir#5809)
feat: LSP completion now works better in the middle of idents (noir-lang/noir#5795)
feat: Explicit Associated Types & Constants (noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field` (noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check (noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon` (noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 27, 2024
feat: Improve "type annotations needed" errors (noir-lang/noir#5830)
chore: enum dummy ID for `FuncId` in monomorphizer and docstring fixes (noir-lang/noir#5421)
chore: delete wip fuzzing files that got accidentally added  (noir-lang/noir#5829)
chore: test ACVM `BigInt` (noir-lang/noir#5559)
fix(docs): Fix file paths for metaprogramming docs (noir-lang/noir#5826)
fix: bit shifting type checking (noir-lang/noir#5824)
feat: add Expr::as_method_call (noir-lang/noir#5822)
chore: Fix docs typo (noir-lang/noir#5821)
feat: add `UnresolvedType::is_field` and `Expr::as_assign` (noir-lang/noir#5804)
chore: Add docs for each comptime method (noir-lang/noir#5802)
chore: Add comptime docs (noir-lang/noir#5800)
fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (noir-lang/noir#5788)
fix(acir_gen): Nested dynamic array initialization (noir-lang/noir#5810)
fix: honor function visibility in LSP completion (noir-lang/noir#5809)
feat: LSP completion now works better in the middle of idents (noir-lang/noir#5795)
feat: Explicit Associated Types & Constants (noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field` (noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check (noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon` (noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates (noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution (noir-lang/noir#5783)
chore: sanitize url's to only allow github (noir-lang/noir#5776)
chore: enable constant inputs for more blackbox (noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module (noir-lang/noir#5768)
sirasistant added a commit to AztecProtocol/aztec-packages that referenced this pull request Aug 27, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: crypto blackbox tests
(noir-lang/noir#5614)
feat: Improve "type annotations needed" errors
(noir-lang/noir#5830)
chore: enum dummy ID for `FuncId` in monomorphizer and docstring fixes
(noir-lang/noir#5421)
chore: delete wip fuzzing files that got accidentally added
(noir-lang/noir#5829)
chore: test ACVM `BigInt` (noir-lang/noir#5559)
fix(docs): Fix file paths for metaprogramming docs
(noir-lang/noir#5826)
fix: bit shifting type checking
(noir-lang/noir#5824)
feat: add Expr::as_method_call
(noir-lang/noir#5822)
chore: Fix docs typo (noir-lang/noir#5821)
feat: add `UnresolvedType::is_field` and `Expr::as_assign`
(noir-lang/noir#5804)
chore: Add docs for each comptime method
(noir-lang/noir#5802)
chore: Add comptime docs (noir-lang/noir#5800)
fix: Handle multiple entry points for Brillig call stack resolution
after metadata deduplication
(noir-lang/noir#5788)
fix(acir_gen): Nested dynamic array initialization
(noir-lang/noir#5810)
fix: honor function visibility in LSP completion
(noir-lang/noir#5809)
feat: LSP completion now works better in the middle of idents
(noir-lang/noir#5795)
feat: Explicit Associated Types & Constants
(noir-lang/noir#5739)
feat: add `Expr::as_cast` and `UnresolvedType::is_field`
(noir-lang/noir#5801)
feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue
(noir-lang/noir#5799)
fix: do not use predicate for index in array operation, when the index
is safe (noir-lang/noir#5779)
chore: Toggle underconstrained check
(noir-lang/noir#5724)
feat: Add `Expr::as_block` and `Expr::has_semicolon`
(noir-lang/noir#5784)
feat: LSP hover and go-to-definition for crates
(noir-lang/noir#5786)
fix(acvm): Clear ACIR call stack after successful circuit execution
(noir-lang/noir#5783)
chore: sanitize url's to only allow github
(noir-lang/noir#5776)
chore: enable constant inputs for more blackbox
(noir-lang/noir#5647)
chore: move sha2 functions into the `hash` module
(noir-lang/noir#5768)
END_COMMIT_OVERRIDE

---------

Co-authored-by: sirasistant <[email protected]>
Co-authored-by: Maxim Vezenov <[email protected]>
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