Expand description
This module contains the code that executes a compiled Cairo program and generates the memory. The Cairo runner includes code to execute a bytecode compiled Cairo program, and obtain a memory instantiation after the execution. It uses some code to represent Cairo instructions and their decomposition, together with their logic which is represented as steps of computation making up the full program.
Re-exports
pub use self::memory::CairoMemory;
pub use self::runner::CairoInstruction;
pub use self::runner::CairoProgram;
pub use self::runner::Pointers;
pub use self::word::FlagBits;
pub use self::word::Offsets;
Modules
- Definition of some constants for easier readability of the steps. When they refer to single bit flagsets, only one constant is needed.
- This module includes some field helpers that are useful for Cairo
- This module represents the Cairo memory, containing the compiled Cairo program that occupies the first few entries
- This module represents a run of a Cairo program as a series of consecutive execution steps, each of which define the execution logic of Cairo instructions
- The Cairo language works natively for field elements in the finite field with modulus 0x800000000000011000000000000000000000000000000000000000000000001 This is the hexadecimal value for 2 ^ 251 + 17 * 2 ^ 192 + 1 Our Pallas curves have 255 bits, so Cairo native instructions will fit. This means that our Cairo implementation can admit a larger domain for immediate values than theirs.