guides
Version Pinning and Reproducible Builds
Lock compiler versions and ensure deterministic compilation output.
Published May 30, 2026
Why Reproducible Builds Matter
Reproducible builds ensure that the same source code always produces the same compiled artifact. This is critical for audit trails and security verification.
Version Pinning
Pin the Pyvorin compiler version in your requirements:
pyvorin==1.0.5
pyvorin-thin==1.0.5
Deterministic Compilation
- Use fixed
opt_levelacross environments. - Pin Python patch version (e.g. 3.12.3).
- Use identical source code with no uncommitted changes.
Verifying Reproducibility
# Build twice and compare hashes
pyvorin compile main.py --function main --target linux_x86_64
sha256sum ~/.pyvorin/cache/*.so
pyvorin compile main.py --function main --target linux_x86_64
sha256sum ~/.pyvorin/cache/*.so