You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What exactly is the 'breaking change to the public API'? A optional dependency version bump is usually not considered as a break change imo (at least for pre-1.0 packages)
impl ModularUnaryOps<&BigUint> for &BigUint is part of num-modular’s public API. The incompatible changes introduced in num-bigint therefore constitute a major breaking change, as they break downstream code that relies on this implementation.
For example, the following compilation error occurs in num-prime:
error[E0277]: the trait bound `for<'r, 'r> &'r num_bigint::BigUint: num_modular::ModularUnaryOps<&'r num_bigint::BigUint>` is not satisfied --> src/buffer.rs:573:51 |573 | let (factors, remainder) = buffer.factors(target.clone(), None); | ------- ^^^^^^^^^^^^^^ the trait `for<'r, 'r> num_modular::ModularUnaryOps<&'r num_bigint::BigUint>` is not implemented for `&'r num_bigint::BigUint` | | | required by a bound introduced by this call | = help: the following other types implement trait `num_modular::ModularUnaryOps<Modulus>`: <&mint::Mint<T, R> as num_modular::ModularUnaryOps<&mint::Mint<T, R>>> <&num_bigint::biguint::BigUint as num_modular::ModularUnaryOps<&num_bigint::biguint::BigUint>> <&u128 as num_modular::ModularUnaryOps<&u128>> <&u16 as num_modular::ModularUnaryOps<&u16>> <&u32 as num_modular::ModularUnaryOps<&u32>> <&u64 as num_modular::ModularUnaryOps<&u64>> <&u8 as num_modular::ModularUnaryOps<&u8>> <&usize as num_modular::ModularUnaryOps<&usize>> and 8 othersnote: required for `&'r num_bigint::BigUint` to implement `for<'r> primality::PrimalityRefBase<num_bigint::BigUint>` --> src/primality.rs:381:15 |381 | impl<T, Base> PrimalityRefBase<Base> for T where | ^^^^^^^^^^^^^^^^^^^^^^ ^...384 | + for<'r> ModularUnaryOps<&'r Base, Output = Base> | ------------------------------------------------ unsatisfied trait bound introduced herenote: required by a bound in `buffer::PrimeBufferExt::factors` --> src/buffer.rs:124:24 |118 | fn factors<T: PrimalityBase>( | ------- required by a bound in this associated function...124 | for<'r> &'r T: PrimalityRefBase<T>, | ^^^^^^^^^^^^^^^^^^^ required by this bound in `PrimeBufferExt::factors`
Activity
cmpute commentedon Oct 13, 2026
What exactly is the 'breaking change to the public API'? A optional dependency version bump is usually not considered as a break change imo (at least for pre-1.0 packages)
xtqqczze commentedon Oct 13, 2026
impl ModularUnaryOps<&BigUint> for &BigUintis part ofnum-modular’s public API. The incompatible changes introduced innum-biginttherefore constitute a major breaking change, as they break downstream code that relies on this implementation.For example, the following compilation error occurs in
num-prime:cmpute commentedon Oct 13, 2026
alright, v0.7.0 published and 0.6.6 yanked
xtqqczze commentedon Oct 13, 2026
Thanks for this, and apologies for not making it clearer in #15.