Repository navigation
v0.2.3
GrayNFS v0.2.3
0.x carries no compatibility promise.
Highlights
- Knuth-multiplier kept: k=61 picked on hostile-105 degree-2, wall 2204 to 757 ms (2.9x) with factors byte-identical (relations 3269 to 1177); k=1 cells bit-identical; standing pin updated to 1177/926 (3269/907 historical).
- Worker-thread
join().expectreplaced with aFactorErrorfallback, so a panicking worker can no longer take down the run; downstream empty-candidates path panic-free. - Code diet with zero behavior change: staged-but-never-wired siqs tailfit API removed (-247 lines), dead lattice/poly/linear-algebra fns and builders removed,
hashbrown/smallvec/core-serde_jsondeps dropped, fulluse_squfofchain removed.
Breaking changes
use_squfof/--no-squfofchain removed (dead surface;CascadeStage::Squfofvariant and name arm deleted).is_prime_proofdefault staysaks(carried from v0.2.1): over-64-bit inputs return cleanFalse(unproven, not composite).
What's changed
- Algebraic y=0-branch bug fixed in both directions (TDD red then fixed, multiply-back invariant); unreachable-in-production verified via caller-less
with_linear. - Error display and docs:
UnsupportedDegreemessage fixed to 2-5,is_prime_proofraw default aligned toaks, 13-point docs batch,check_invariants.pypins M1/M2 plus M3/M8/M11 (31 checks green with tamper-reds verified). - SIQS cleanup: stale
--no-squfofREADME row deleted (api-surface back to 14/14); cascade stage-2 width memo and per-block LP switch killed with exact reverts. - Dead-code diet: lattice_sieve cluster, poly helpers, unused linear-algebra fns and builders, and the full
use_squfof/--no-squfofchain removed (92/92 green); rust-version 1.85 plus license metadata applied. - KILL ledger (no production change, exact reverts): 16.1, 17.1, 26.1, 27.1, 32.1, 37.2, 38.1 (+38.2 STOP), 39.1, 40.2; 18.x/19.x gated-closed, 7.2/9.2 declined, 20.1 aborted by user order.
Benchmarks
- All benchmark cells unchanged (version-marking release; no factorization-logic change in the bump itself).
- Standing pin updated to 1177/926 (3269/907 kept as historical); k=1 cells bit-identical.
Full Changelog: v0.2.2...v0.2.3