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 #4670

Merged
merged 14 commits into from
Mar 29, 2024
Merged

feat: Sync from aztec-packages #4670

merged 14 commits into from
Mar 29, 2024

Commits on Mar 28, 2024

  1. refactor: inject fetcher instead of using global (AztecProtocol/aztec…

    …-packages#5502)
    
    This PR refactors the GithubDependencyResolver to take a fetch
    implementation instead of always using the global default
    AztecBot committed Mar 28, 2024
    Configuration menu
    Copy the full SHA
    a62e972 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3bbe4a6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    485cbb5 View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2024

  1. Configuration menu
    Copy the full SHA
    d3bdfb7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    60155f2 View commit details
    Browse the repository at this point in the history
  3. feat(acvm): Execute multiple circuits (AztecProtocol/aztec-packages#5380

    )
    
    Resolves #4428
    
    This is a followup to
    AztecProtocol/aztec-packages#5341 which does the
    initial ACIR generation work for multiple ACIR functions.
    
    Execution is now done by moving `execute_circuit` to be part of a
    stateful `ProgramExecutor` that builds a witness stack for every
    completed `execute_circuit` call. An initial `execute_program` function
    instantiates the `ProgramExecutor` and starts execution on our `main`
    entry point circuit. When a `Call` opcode is reached we pause execution
    and recursively call `execute_circuit`, which then returns the solved
    witness for that call. We then resolve the outputs of that execution by
    reading the return witnesses from the inner solved witness. We then push
    the nested call solved witness onto the witness stack and continue
    execution of our main ACVM instance. This is quite similar to the
    process used by foreign calls with Brillig, except it is now done with
    the main ACVM rather than the contained Brillig VM.
    
    This witness stack and program (list of `Circuit` functions) then gets
    passed to the backend. For now, I have only done an additive
    `prove_and_verify_ultra_honk_program` to show the process working for
    the basic non-inlined ACIR programs supplied here. I wanted to leave any
    WASM exports or ACVM JS changes for a follow-up PR as they are quite a
    bit of changes on their own.
    
    ---------
    
    Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
    Co-authored-by: Tom French <tom@tomfren.ch>
    Co-authored-by: jfecher <jfecher11@gmail.com>
    4 people committed Mar 29, 2024
    Configuration menu
    Copy the full SHA
    9d150d9 View commit details
    Browse the repository at this point in the history
  4. feat(acvm): Execute multiple circuits (AztecProtocol/aztec-packages#5380

    )
    
    Resolves #4428
    
    This is a followup to
    AztecProtocol/aztec-packages#5341 which does the
    initial ACIR generation work for multiple ACIR functions.
    
    Execution is now done by moving `execute_circuit` to be part of a
    stateful `ProgramExecutor` that builds a witness stack for every
    completed `execute_circuit` call. An initial `execute_program` function
    instantiates the `ProgramExecutor` and starts execution on our `main`
    entry point circuit. When a `Call` opcode is reached we pause execution
    and recursively call `execute_circuit`, which then returns the solved
    witness for that call. We then resolve the outputs of that execution by
    reading the return witnesses from the inner solved witness. We then push
    the nested call solved witness onto the witness stack and continue
    execution of our main ACVM instance. This is quite similar to the
    process used by foreign calls with Brillig, except it is now done with
    the main ACVM rather than the contained Brillig VM.
    
    This witness stack and program (list of `Circuit` functions) then gets
    passed to the backend. For now, I have only done an additive
    `prove_and_verify_ultra_honk_program` to show the process working for
    the basic non-inlined ACIR programs supplied here. I wanted to leave any
    WASM exports or ACVM JS changes for a follow-up PR as they are quite a
    bit of changes on their own.
    
    ---------
    
    Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
    Co-authored-by: Tom French <tom@tomfren.ch>
    Co-authored-by: jfecher <jfecher11@gmail.com>
    4 people committed Mar 29, 2024
    Configuration menu
    Copy the full SHA
    e625c7e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    2d0edf6 View commit details
    Browse the repository at this point in the history
  6. reduce diff

    vezenovm committed Mar 29, 2024
    Configuration menu
    Copy the full SHA
    c1366b6 View commit details
    Browse the repository at this point in the history
  7. nargo fmt

    vezenovm committed Mar 29, 2024
    Configuration menu
    Copy the full SHA
    865f4aa View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    02bf542 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    683976e View commit details
    Browse the repository at this point in the history
  10. nargo fmt

    vezenovm committed Mar 29, 2024
    Configuration menu
    Copy the full SHA
    bfc3ef7 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    aba4ee5 View commit details
    Browse the repository at this point in the history