Repository navigation
Require filesystem for the dev targets that fetch SRS powers or key files - #3586
Merged
Merged
Conversation
Since sans-io parameters landed, the SRS fetches powers files only with the filesystem feature, and snarkvm-algorithms no longer enables it for its dev targets. The varuna benches build circuits above the embedded powers, so without filesystem they panic with MissingPowers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M5p1wUhWpX37vHyFJmRnFh
`inclusion`, `setup`, `srs_shared_keys` and `translation` read SRS powers beyond the embedded file, or the shipped key files. Since sans-io parameters landed, `snarkvm-parameters` fetches neither without `filesystem`, and its dev builds no longer enable it, so each example stopped with `MissingPowers` or "Filesystem access is disabled". Cargo now names the missing feature instead, and the usage comments and the key-generation scripts pass it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M5p1wUhWpX37vHyFJmRnFh
ljedrz
approved these changes
Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
PR #3565 changed two things that break some dev targets:
snarkvm-parametersfetches SRS powers files and shipped key files only with thefilesystemfeature. Without it, the crate does no I/O.filesystemon for every bench and example. The no-filesystemtests need it off.Builds that depend on
snarkvmwith default features still getfilesystem. The targets below did not ask for it, so they stopped:varunaandvaruna_verifierbenches build circuits larger than the embedded powers. They panic withMissingPowersincircuit_setup.inclusion,setupandtranslationexamples fail withMissingPowers.srs_shared_keysfails with "Filesystem access is disabled".This PR adds
filesystemto therequired-featuresof each of these targets. Cargo then names the missing feature instead of failing at run time. The usage comments and the key-generation scripts inparameters/scriptspass the feature.Commits
29c0de3: requirefilesystemfor the varuna benches.b5c269a: requirefilesystemfor the parameters examples.Test Plan
cargo bench -p snarkvm-algorithms --features test,filesystem --bench varuna -- --warm-up-time 0.1 --measurement-time 0.1runs all 11 bench functions without a panic.cargo bench -p snarkvm-algorithms --features test,filesystem --bench varuna_verifier -- --generategenerates and verifies the proof. A run without arguments times verification.-- --cleandeletes the artifacts.filesystem, each of the four examples fails as described above. With it,translation testnetruns to completion.cargo build -p snarkvm-parameters --example setupwithout features stops with cargo's required-features error.cargo clippy -p snarkvm-algorithms --all-targets --features test,filesystem -- -D warningsandcargo clippy -p snarkvm-parameters --examples --all-features -- -D warningspass.cargo +nightly-2026-04-02 fmt --all -- --checkpasses.Documentation
The benches and examples now need
--features filesystem. The usage comments and theparameters/scriptsshow it.Backwards compatibility
This PR changes only bench and example targets, their comments and the key-generation scripts. It does not change library code, consensus or tests.
A
cargo check --examples --bencheswithout features now skips these targets. CI's lint job runs clippy with--all-features, so it still checks them. The Windows job'scargo check --examples --benches --testsinparametersno longer compiles the four examples.🤖 Generated with Claude Code
https://claude.ai/code/session_01M5p1wUhWpX37vHyFJmRnFh