Skip to content

feat: Sync from aztec-packages#4564

Closed
AztecBot wants to merge 9 commits intomasterfrom
aztec-packages
Closed

feat: Sync from aztec-packages#4564
AztecBot wants to merge 9 commits intomasterfrom
aztec-packages

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 <isennovskiy@gmail.com>
@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 <karl.lye@gmail.com>
Co-authored-by: Innokentii Sennovskii <isennovskiy@gmail.com>
Co-authored-by: Cody Gunton <codygunton@gmail.com>
Co-authored-by: Alex Gherghisan <alexghr@users.noreply.github.com>
Co-authored-by: Mitchell Tracy <mitchell@aztecprotocol.com>
Co-authored-by: Jan Beneš <janbenes1234@gmail.com>
Co-authored-by: esau <152162806+sklppy88@users.noreply.github.com>
Co-authored-by: Facundo <fcarreiro@users.noreply.github.com>
Co-authored-by: josh crites <critesjosh@gmail.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: Álvaro Rodríguez <sirasistant@gmail.com>
Co-authored-by: Ilyas Ridhuan <ilyas@aztecprotocol.com>
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 <karl.lye@gmail.com>
Co-authored-by: Innokentii Sennovskii <isennovskiy@gmail.com>
Co-authored-by: Cody Gunton <codygunton@gmail.com>
Co-authored-by: Alex Gherghisan <alexghr@users.noreply.github.com>
Co-authored-by: Mitchell Tracy <mitchell@aztecprotocol.com>
Co-authored-by: Jan Beneš <janbenes1234@gmail.com>
Co-authored-by: esau <152162806+sklppy88@users.noreply.github.com>
Co-authored-by: Facundo <fcarreiro@users.noreply.github.com>
Co-authored-by: josh crites <critesjosh@gmail.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: Álvaro Rodríguez <sirasistant@gmail.com>
Co-authored-by: Ilyas Ridhuan <ilyas@aztecprotocol.com>
)

* 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