Skip to content

Commit

Permalink
feat: Sync from aztec-packages (#6557)
Browse files Browse the repository at this point in the history
Co-authored-by: Tom French <tom@tomfren.ch>
  • Loading branch information
AztecBot and TomAFrench authored Nov 19, 2024
1 parent 5d5175e commit 7dd71c1
Show file tree
Hide file tree
Showing 101 changed files with 954 additions and 1,172 deletions.
2 changes: 1 addition & 1 deletion .aztec-sync-commit
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d9de430e4a01d6908a9b1fe5e6ede9309aa8a10d
58761fcf181d0a26c4e387105b1bc8a3a75b0368
14 changes: 2 additions & 12 deletions acvm-repo/acir/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ In summary, the workflow is the following:
1. user program -> (compilation) ACIR, a list of opcodes which constrain
(partial) witnesses
2. user inputs + ACIR -> (execution/solving) assign values to all the
(partial) witnesses
(partial) witnesses
3. witness assignment + ACIR -> (proving system) proof

Although the ordering of opcode does not matter in theory, since a system of
Expand Down Expand Up @@ -121,7 +121,7 @@ proving system and are only used by the solver.
Finally, some opcodes will have a predicate, whose value is `0` or `1`. Its
purpose is to nullify the opcode when the value is `0`, so that it has no
effect. Note that removing the opcode is not a solution because this modifies
the circuit (the circuit being mainly the list of the opcodes).
the circuit (the circuit being mainly the list of the opcodes).

*Remark*: Opcodes operate on witnesses, but we will see that some opcode work on
expressions of witnesses. We call an expression a linear combination of
Expand Down Expand Up @@ -265,16 +265,6 @@ without adding any constraint.
NOTE: see the [circuit/opcodes.rs](src/circuit/opcodes.rs) file for the most
up-to-date documentation on these opcodes.

#### Directive

This opcode is a specialization of Brillig opcode. Instead of having some generic
assembly code like Brillig, a directive has a hardcoded name which tells the
solver which computation to do: with Brillig, the computation refers to the
compiled bytecode of an unconstrained Noir function, but with a directive, the
computation is hardcoded inside the compiler.

Directives will be replaced by Brillig opcodes in the future.

#### MemoryOp: memory abstraction for ACIR

ACIR is able to address any array of witnesses. Each array is assigned an ID
Expand Down
1 change: 0 additions & 1 deletion acvm-repo/acir/benches/serialization.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ fn sample_program(num_opcodes: usize) -> Program<FieldElement> {
public_parameters: PublicInputs(BTreeSet::from([Witness(5)])),
return_values: PublicInputs(BTreeSet::from([Witness(6)])),
assert_messages: Vec::new(),
recursive: false,
}],
unconstrained_functions: Vec::new(),
}
Expand Down
Loading

0 comments on commit 7dd71c1

Please sign in to comment.