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 aztec-packages #4564

Closed
wants to merge 9 commits into from
Closed

feat: Sync from aztec-packages #4564

wants to merge 9 commits into from

Conversation

AztecBot
Copy link
Collaborator

@AztecBot AztecBot commented Mar 15, 2024

Automated pull of Noir development from aztec-packages.
BEGIN_COMMIT_OVERRIDE
chore(avm-simulator): update e2e test (AztecProtocol/aztec-packages#5283)
feat!: Acir call opcode (AztecProtocol/aztec-packages#4773)
feat: initial Earthly CI (AztecProtocol/aztec-packages#5069)
feat: Check initializer msg.sender matches deployer from address preimage (AztecProtocol/aztec-packages#5222)
feat: Sync from noir (AztecProtocol/aztec-packages#5234)
feat: Brillig IR refactor (AztecProtocol/aztec-packages#5233)
feat(avm): brillig CONST of size > u128 (AztecProtocol/aztec-packages#5217)
feat: New brillig field operations and refactor of binary operations (AztecProtocol/aztec-packages#5208)
feat!: Support contracts with no constructor (AztecProtocol/aztec-packages#5175)
END_COMMIT_OVERRIDE

AztecBot and others added 2 commits March 15, 2024 15:21
### CVC5

Recently `cvc5` updated their api and changed the way of creating and
managing terms. Now `cvc5::TermManger` is responsible for this instead
of `cvc5::Solver`.
This pr fixes our api to meet their update.

Also I made `cvc5` an external project in CMakeLists so now you don't
have to install it manually.

### Bool

For some reason `Bool` class had pure `cvc5::Solver` pointer as a
member. Fixed that to be `smt_solver::Solver`.

### Circuit

fixed `univariate_flag`. It was `true` by default, so it performed the
wrong optimization.

### Solver

renamed

- `fp` -> `ff_sort`
- `s` -> `solver`
- `tm` -> `term_manager`

Added placeholder methods `getValue` and `assertFormula` to avoid code
like `solver->solver.assertFormula`

---------

Co-authored-by: Innokentii Sennovskii <[email protected]>
@TomAFrench
Copy link
Member

This is going to need a new bb version in order to pass tests afaik. Were these changes included in the release today?

@sirasistant
Copy link
Contributor

Ah true, forgot about the serialization change. I don't think it's released yet!

@sirasistant
Copy link
Contributor

Oh, it went in in 0.28. Will try updating, let's see AztecProtocol/aztec-packages#5192

sirasistant and others added 7 commits March 15, 2024 15:37
Introduces earthly as an alternative CI that hopes to eventually replace
our current build-system.

https://docs.earthly.dev/ is a build system that combines Makefiles and
Dockerfiles. This is basically exactly what our system needed, IMO, and
has some nice things figured out. Hope is to reduce complexity of
working with the build system by a good chunk.

Core changes:
- we have a github actions CI that runs a single end to end test inside
earthly for arm64 and x86_64
- new Earthfile's now mirror the Dockerfile's, notable differences:
  - we build our own foundry package for ARM support
  - we build our own wasi-sdk package for ARM support
- grumpkin SRS is no longer generated on the spot, but downloaded like
bn254 SRS
- we don't inject any commit hashes for Noir as this would cause
spurious rebuilds as any difference stops caching, instead we inject a
content hash (to be revisited)

 Side changes:
- since we build our own wasi-sdk 21 package, and it is clang18, some
compilation workarounds
  - allow specifying a different nargo and acvm binary in build
  - small output tweaks

---------

Co-authored-by: Charlie Lye <[email protected]>
Co-authored-by: Innokentii Sennovskii <[email protected]>
Co-authored-by: Cody Gunton <[email protected]>
Co-authored-by: Alex Gherghisan <[email protected]>
Co-authored-by: Mitchell Tracy <[email protected]>
Co-authored-by: Jan Beneš <[email protected]>
Co-authored-by: esau <[email protected]>
Co-authored-by: Facundo <[email protected]>
Co-authored-by: josh crites <[email protected]>
Co-authored-by: Tom French <[email protected]>
Co-authored-by: Álvaro Rodríguez <[email protected]>
Co-authored-by: Ilyas Ridhuan <[email protected]>
Introduces earthly as an alternative CI that hopes to eventually replace
our current build-system.

https://docs.earthly.dev/ is a build system that combines Makefiles and
Dockerfiles. This is basically exactly what our system needed, IMO, and
has some nice things figured out. Hope is to reduce complexity of
working with the build system by a good chunk.

Core changes:
- we have a github actions CI that runs a single end to end test inside
earthly for arm64 and x86_64
- new Earthfile's now mirror the Dockerfile's, notable differences:
  - we build our own foundry package for ARM support
  - we build our own wasi-sdk package for ARM support
- grumpkin SRS is no longer generated on the spot, but downloaded like
bn254 SRS
- we don't inject any commit hashes for Noir as this would cause
spurious rebuilds as any difference stops caching, instead we inject a
content hash (to be revisited)

 Side changes:
- since we build our own wasi-sdk 21 package, and it is clang18, some
compilation workarounds
  - allow specifying a different nargo and acvm binary in build
  - small output tweaks

---------

Co-authored-by: Charlie Lye <[email protected]>
Co-authored-by: Innokentii Sennovskii <[email protected]>
Co-authored-by: Cody Gunton <[email protected]>
Co-authored-by: Alex Gherghisan <[email protected]>
Co-authored-by: Mitchell Tracy <[email protected]>
Co-authored-by: Jan Beneš <[email protected]>
Co-authored-by: esau <[email protected]>
Co-authored-by: Facundo <[email protected]>
Co-authored-by: josh crites <[email protected]>
Co-authored-by: Tom French <[email protected]>
Co-authored-by: Álvaro Rodríguez <[email protected]>
Co-authored-by: Ilyas Ridhuan <[email protected]>
)

* Add storage e2e tests
* Convert test contract methods to snake case to match other contracts.
* Remove `avm_` requirement in function names for transpilation. It's not needed, we rely on `#[aztec(public-vm)]`.
* Prepare ground in bootstrap.sh to transpile all files in parallel. It works but I'm being overly cautious and not enabling it on all files until I need it.
* Backup original contract before transpiling.
)

* Add storage e2e tests
* Convert test contract methods to snake case to match other contracts.
* Remove `avm_` requirement in function names for transpilation. It's not needed, we rely on `#[aztec(public-vm)]`.
* Prepare ground in bootstrap.sh to transpile all files in parallel. It works but I'm being overly cautious and not enabling it on all files until I need it.
* Backup original contract before transpiling.
@sirasistant
Copy link
Contributor

Closing to try to fix sync

@sirasistant sirasistant deleted the aztec-packages branch March 18, 2024 15:48
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