mirror of
https://github.com/powdr-labs/powdr.git
synced 2026-01-10 07:07:59 -05:00
Introduce `PgoAdapter` which wraps `Adapter` and can call apc generation. Removes the match statements over the pgo method. Breaking change. Now the client can pick some pgo implementations like `pgo::CellPgo` and use it like `CellPgo::<MyAdapter>::new(pgo_data).generate_apcs(blocks)`. The client can also implement `PgoAdapter<A: Adapter>` for its own pgo implementation.
cli-openvm
Use command execute to run the program only, and prove to prove.
The prove command has a mock option to only check the constraints.
Examples:
# Run the original program
RUSTFLAGS='-C target-cpu=native' cargo run -r execute guest
# Prove the original program
RUSTFLAGS='-C target-cpu=native' cargo run -r prove guest
# Check the constraints and witness of the original program
RUSTFLAGS='-C target-cpu=native' cargo run -r prove guest --mock
# Run the program with autoprecompiles
RUSTFLAGS='-C target-cpu=native' cargo run -r execute guest --skip 37 --autoprecompiles 1
# Run the program with optimized autoprecompiles
RUSTFLAGS='-C target-cpu=native' cargo run -r execute guest --skip 37 --autoprecompiles 1 --optimize
# Prove the program with autoprecompiles
RUSTFLAGS='-C target-cpu=native' cargo run -r prove guest --skip 37 --autoprecompiles 1
# Prove the program with optimized autoprecompiles
RUSTFLAGS='-C target-cpu=native' cargo run -r prove guest --skip 37 --autoprecompiles 1 --optimize
# Check the constraints and witness of the program with autoprecompiles
RUSTFLAGS='-C target-cpu=native' cargo run -r prove guest --skip 37 --autoprecompiles 1 --mock
# Check the constraints and witness of the program with optimized autoprecompiles
RUSTFLAGS='-C target-cpu=native' cargo run -r prove guest --skip 37 --autoprecompiles 1 --mock --optimize
It is recommended to use at least RUST_LOG=info for information, and RUST_LOG=debug for benchmarks.