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: test ACVM BigInt #5559

Merged
merged 39 commits into from
Aug 26, 2024
Merged

chore: test ACVM BigInt #5559

merged 39 commits into from
Aug 26, 2024

Conversation

michaeljklein
Copy link
Contributor

@michaeljklein michaeljklein commented Jul 18, 2024

Description

Problem*

Part of #5426

Summary*

Tests

  • Conversion to/from LE arrays of bytes
  • Add/Mul associative/commutative/identity
  • Mul has L/R zero
  • Distributive property
  • Invertibility of Add/Mul
  • Injectivity of Add

Additional Context

Without updating overflow-checks defaults, the invalid-modulus only panics locally while passing in CI.

It results in a 22% increase in user time and 27% increase in wall-clock time running cargo test (in release mode):

  • With overflow checks: 708.25s user 38.29s system 842% cpu 1:28.65 total
  • Without overflow checks: 577.09s user 32.65s system 875% cpu 1:09.68 total

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.

@michaeljklein michaeljklein marked this pull request as ready for review July 22, 2024 21:15
@michaeljklein michaeljklein requested a review from a team July 22, 2024 21:59
Copy link
Contributor

github-actions bot commented Aug 20, 2024

Changes to Brillig bytecode sizes

Generated at commit: 093eebc3cfce8f7b713498a1096deb83ddc1915c, compared to commit: a764c5be9b15e499e0720f28a1a177bfecbef352

There are no changes in circuit sizes

@github-actions github-actions bot added the documentation Improvements or additions to documentation label Aug 20, 2024
Copy link
Contributor

github-actions bot commented Aug 20, 2024

Copy link
Contributor

FYI @noir-lang/developerrelations on Noir doc changes.

@michaeljklein michaeljklein added this pull request to the merge queue Aug 26, 2024
Merged via the queue into master with commit cfad664 Aug 26, 2024
47 checks passed
@michaeljklein michaeljklein deleted the michaeljklein/test-acvm-bigint branch August 26, 2024 19:15
github-merge-queue bot pushed a commit that referenced this pull request Aug 26, 2024
# Description

## Problem\*

Resolves #5427

## Summary\*

Unit test our blackbox crypto instructions.

Preferable to merge after:
- #5559
- #5484

(Because of overlapping helper functions)

## Additional Context

While most of our crypto function implementations are from external
crates, `poseidon2_permutation` is implemented internally. I'm using the
[`zkhash` crate](https://docs.rs/zkhash/0.2.0/zkhash/poseidon2/) to test
our implementation.

## Documentation\*

Check one:
- [x] No documentation needed.
- [ ] Documentation included in this PR.
- [ ] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [x] I have tested the changes locally.
- [x] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.
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)
TomAFrench added a commit that referenced this pull request Aug 27, 2024
* master: (21 commits)
  chore: crypto blackbox tests (#5614)
  feat: Improve "type annotations needed" errors (#5830)
  chore: enum dummy ID for `FuncId` in monomorphizer and docstring fixes (#5421)
  chore: delete wip fuzzing files that got accidentally added  (#5829)
  chore: test ACVM `BigInt` (#5559)
  fix(docs): Fix file paths for metaprogramming docs (#5826)
  fix: bit shifting type checking (#5824)
  feat: add Expr::as_method_call (#5822)
  chore: Fix docs typo (#5821)
  feat: add `UnresolvedType::is_field` and `Expr::as_assign` (#5804)
  chore: Add docs for each comptime method (#5802)
  chore: Add comptime docs (#5800)
  fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (#5788)
  fix(acir_gen): Nested dynamic array initialization (#5810)
  fix: honor function visibility in LSP completion (#5809)
  feat: LSP completion now works better in the middle of idents (#5795)
  feat: Explicit Associated Types & Constants (#5739)
  feat: add `Expr::as_cast` and `UnresolvedType::is_field` (#5801)
  feat: add `Expr` methods: as_comptime, as_unsafe, is_break, is_continue (#5799)
  fix: do not use predicate for index in array operation, when the index is safe (#5779)
  ...
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 <sirasistant@gmail.com>
Co-authored-by: Maxim Vezenov <mvezenov@gmail.com>
TomAFrench added a commit that referenced this pull request Aug 28, 2024
* master: (35 commits)
  fix!: Check unused generics are bound (#5840)
  chore(perf): Simplify poseidon2 algorithm  (#5811)
  chore: redo typo PR by nnsW3 (#5834)
  fix(sha256): Perform compression per block and utilize ROM instead of RAM when setting up the message block (#5760)
  chore(perf): Update to stdlib keccak for reduced Brillig code size (#5827)
  chore: crypto blackbox tests (#5614)
  feat: Improve "type annotations needed" errors (#5830)
  chore: enum dummy ID for `FuncId` in monomorphizer and docstring fixes (#5421)
  chore: delete wip fuzzing files that got accidentally added  (#5829)
  chore: test ACVM `BigInt` (#5559)
  fix(docs): Fix file paths for metaprogramming docs (#5826)
  fix: bit shifting type checking (#5824)
  feat: add Expr::as_method_call (#5822)
  chore: Fix docs typo (#5821)
  feat: add `UnresolvedType::is_field` and `Expr::as_assign` (#5804)
  chore: Add docs for each comptime method (#5802)
  chore: Add comptime docs (#5800)
  fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (#5788)
  fix(acir_gen): Nested dynamic array initialization (#5810)
  fix: honor function visibility in LSP completion (#5809)
  ...
TomAFrench added a commit that referenced this pull request Aug 28, 2024
* master: (29 commits)
  fix!: Check unused generics are bound (#5840)
  chore(perf): Simplify poseidon2 algorithm  (#5811)
  chore: redo typo PR by nnsW3 (#5834)
  fix(sha256): Perform compression per block and utilize ROM instead of RAM when setting up the message block (#5760)
  chore(perf): Update to stdlib keccak for reduced Brillig code size (#5827)
  chore: crypto blackbox tests (#5614)
  feat: Improve "type annotations needed" errors (#5830)
  chore: enum dummy ID for `FuncId` in monomorphizer and docstring fixes (#5421)
  chore: delete wip fuzzing files that got accidentally added  (#5829)
  chore: test ACVM `BigInt` (#5559)
  fix(docs): Fix file paths for metaprogramming docs (#5826)
  fix: bit shifting type checking (#5824)
  feat: add Expr::as_method_call (#5822)
  chore: Fix docs typo (#5821)
  feat: add `UnresolvedType::is_field` and `Expr::as_assign` (#5804)
  chore: Add docs for each comptime method (#5802)
  chore: Add comptime docs (#5800)
  fix: Handle multiple entry points for Brillig call stack resolution after metadata deduplication (#5788)
  fix(acir_gen): Nested dynamic array initialization (#5810)
  fix: honor function visibility in LSP completion (#5809)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants