jellyfish icon indicating copy to clipboard operation
jellyfish copied to clipboard

jellyfish benches build break with --no-default-features

Open ggutoski opened this issue 6 months ago • 3 comments

I'm unable to build jellyfish benches with --no-default-features. The feature parallel is on by default so I cannot run benches without parallel feature. Much confusion. Why is parallelizable_slice_iter returning a rayon::slice::Iter when parallel feature is disabled?? I expect rayon to be completely absent without parallel.

cargo check --benches --no-default-features --features test-srs
    Checking jf-relation v0.4.4 (https://github.com/EspressoSystems/jellyfish?tag=0.4.5#7d71dbef)
    Checking jf-pcs v0.1.0 (/Users/gus/Documents/espresso/git-repos/jellyfish/pcs)
    Checking jf-relation v0.4.4 (/Users/gus/Documents/espresso/git-repos/jellyfish/relation)
error[E0599]: `rayon::slice::Iter<'_, DensePolynomial<<E as ark_ec::pairing::Pairing>::ScalarField>>` is not an iterator
   --> pcs/src/univariate_kzg/mod.rs:134:14
    |
133 |           let res = parallelizable_slice_iter(polys)
    |  ___________________-
134 | |             .map(|poly| Self::commit(prover_param, poly))
    | |             -^^^ `rayon::slice::Iter<'_, DensePolynomial<<E as ark_ec::pairing::Pairing>::ScalarField>>` is not an iterator
    | |_____________|
    | 
    |
   ::: /Users/gus/.cargo-nix/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.10.0/src/slice/mod.rs:785:1
    |
785 |   pub struct Iter<'data, T: Sync> {
    |   ------------------------------- doesn't satisfy `_: Iterator`
    |
    = note: the following trait bounds were not satisfied:
            `rayon::slice::Iter<'_, DensePolynomial<<E as ark_ec::pairing::Pairing>::ScalarField>>: Iterator`
            which is required by `&mut rayon::slice::Iter<'_, DensePolynomial<<E as ark_ec::pairing::Pairing>::ScalarField>>: Iterator`
    = help: items from traits can only be used if the trait is in scope
help: trait `ParallelIterator` which provides `map` is implemented but not in scope; perhaps you want to import it
    |
9   + use rayon::iter::ParallelIterator;
    |

...and many more similar build errors.

ggutoski avatar Aug 13 '24 17:08 ggutoski