Crate brillig_vm

Source
Expand description

The Brillig VM is a specialized VM which allows the ACVM to perform custom non-determinism.

Brillig bytecode is distinct from regular ACIR in that it does not generate constraints.

Re-exportsยง

Modulesยง

Structsยง

  • A sample for an executed opcode
  • The VMโ€™s memory. Memory is internally represented as a vector of values. We grow the memory when values past the end are set, extending with 0s.
  • VM encapsulates the state of the Brillig VM during execution.

Enumsยง

  • Represents the reason why the Brillig VM failed during execution.
  • A single typed value in the Brillig VMโ€™s memory.
  • Represents the current execution status of the Brillig VM.

Constantsยง

Functionsยง

  • Returns the total number of field elements required to represent the elements in the vector in memory.

Type Aliasesยง

  • A tuple of the current opcode position and the next opcode position or state
  • A map for translating encountered branching logic to features for fuzzing
  • All samples for each opcode that was executed
  • The error call stack contains the opcode indexes of the call stack at the time of failure, plus the index of the opcode that failed.
  • The position of the next opcode that will be executed in the bytecode or an id of a specific state produced by the opcode
  • The position of an opcode that is currently being executed in the bytecode
  • The index of a unique feature in the fuzzing trace