Skip to content
LogoLogo

Build Targets

Transcribed from zig build --help on this checkout. Descriptions are the ones build.zig prints.

Core

StepDescription
install (default)Copy build artifacts to prefix path
uninstallRemove build artifacts from prefix path
testRun tests (unit + spec tests whose fixtures are present)
unitRun unit tests only (fast)
nativeBuild native static library for FFI → zig-out/lib/libguillotine_mini.a
wasmBuild WASM library and show bundle size — currently fails, see Building from Source

Full-client work in progress

These belong to the Guillotine client being built in this repository (client/, client-ts/), not to the EVM itself. They are why zig build test runs 31 steps.

StepDescription
test-dbdatabase abstraction layer tests
test-trieMerkle Patricia Trie tests
nethermind-diffNethermind trie differential test
test-stateworld state journal tests
test-networkdevp2p networking tests
test-syncsynchronization tests
test-blockchainchain management tests
test-txpooltxpool tests
test-rpcJSON-RPC server tests
test-engineEngine API tests
test-runnerrunner CLI tests
test-evm-adapterEVM ↔ WorldState integration tests
bench-network, bench-evm, bench-state, bench-blockchain, bench-db, bench-trie, bench-txpoolmicro-benchmarks for the same subsystems

Spec tests

StepDescription
specsexecution-specs STATE tests
specs-blockchainexecution-specs BLOCKCHAIN tests

Per-fork aggregates: specs-frontier, specs-homestead, specs-byzantium, specs-constantinople, specs-istanbul, specs-berlin, specs-paris, specs-shanghai, specs-cancun, specs-prague, specs-osaka.

Sub-targets

ForkSteps
Frontierspecs-frontier-precompiles, -identity, -create, -call, -calldata, -dup, -push, -stack, -opcodes
Byzantiumspecs-byzantium-modexp (EIP-198, 352 tests)
Constantinoplespecs-constantinople-bitshift (EIP-145, ~250), specs-constantinople-create2 (EIP-1014, ~250)
Istanbulspecs-istanbul-blake2 (EIP-152), specs-istanbul-chainid (EIP-1344)
Berlinspecs-berlin-acl, specs-berlin-intrinsic-gas-cost, specs-berlin-intrinsic-type0, specs-berlin-intrinsic-type1
Shanghaispecs-shanghai-push0 (EIP-3855), specs-shanghai-warmcoinbase (EIP-3651), specs-shanghai-initcode-basic (162), specs-shanghai-initcode-eof (24), specs-shanghai-withdrawals (EIP-4895)
Cancunspecs-cancun-tstore-basic, -tstore-reentrancy, -tstore-contexts-execution (60), -tstore-contexts-tload-reentrancy (48), -tstore-contexts-reentrancy (20), -tstore-contexts-create (20), -tstore-contexts-selfdestruct (12), -tstore-contexts-clear (4), specs-cancun-mcopy, specs-cancun-selfdestruct-basic (306), -selfdestruct-collision (52), -selfdestruct-reentrancy (36), -selfdestruct-revert (12), specs-cancun-blobbasefee, specs-cancun-blob-precompile-basic (310), -blob-precompile-gas (48), specs-cancun-blob-opcodes-basic (75), -blob-opcodes-contexts (23), specs-cancun-blob-tx-small, -blob-tx-subtraction, -blob-tx-insufficient, -blob-tx-sufficient, -blob-tx-valid-combos
Praguespecs-prague-calldata-cost-type0, -type1-2, -type3, -type4, -refunds (EIP-7623), specs-prague-bls-g1, -bls-g2, -bls-pairing, -bls-map, -bls-misc (EIP-2537), specs-prague-setcode-calls, -setcode-gas, -setcode-txs, -setcode-advanced (EIP-7702)
Osakaspecs-osaka-modexp-variable-gas, -modexp-vectors-eip, -modexp-vectors-legacy, -modexp-misc (EIP-7883), specs-osaka-other

Options and environment

Flag / variableEffect
-Doptimize=ReleaseFast|ReleaseSafe|ReleaseSmall|Debugstandard Zig optimization mode
-Dtarget=<triple>cross-compile
-Dnethermind-diff=trueinclude the Nethermind trie diff in zig build test
-Drefresh-specs=trueforce re-fetch of execution-specs fixtures
TEST_FILTER="<substring>"narrow any spec suite by test name, category, EIP, or opcode
INCLUDE_ENGINE_TESTS=1include blockchain_test_engine consensus-layer fixtures

Run zig build --help on your checkout for the current, authoritative list — the spec steps are generated from tables in build.zig and change as suites are added.