Faster search, unchanged search rules
Rusty Rival 1.0.59 removes work from the search hot path without changing evaluation, pruning thresholds or move ordering.
- Avoid move-list copies (NET-1189, #83). Quiescence and staged move-generation loops iterate their move lists by reference. Quiescence generators fill caller-provided lists, avoiding full-capacity array copies.
- Skip make/unmake for moves already destined to be pruned (NET-1188, #84). Lazily computed pin, discovered-check and direct-check masks certify eligible quiet moves as legal and non-checking. Existing futility and late-move pruning can then reject them before board updates, NNUE bookkeeping and check tests. Moves that cannot be certified still take the existing path.
Independently measured performance
Measurements used a Ryzen 9 5950X under WSL, one thread, 128 MiB hash, and the Linux AVX2 release compiler target. Each comparison used 20 alternating ABBA/BAAB blocks with no live bot or overlapping build/test workload.
| Optimization | NPS improvement | Paired 95% interval | Compared with |
|---|---|---|---|
| Move-list copy removal | +1.98% | +1.50% to +2.46% | v1.0.58 |
| Pre-make pruning | +8.69% | +8.09% to +9.28% | The build already containing copy removal |
These are separate, incremental throughput measurements, not a directly measured combined speedup. Gains also reproduced in native-target builds (+0.87% and +8.54%, respectively). Results may differ on other CPUs, compilers or thread counts. No Elo gain is claimed for this release.
Validation
- Independent internal review found no blocking correctness defect.
- The deterministic depth-12 benchmark remains 2,725,178 nodes, with identical per-position counts.
- Full release suites passed: 220 tests passed, zero failed, three existing ignored tests.
- Native comparisons matched complete depth/score/nodes/PV/bestmove output on 323 positions, plus nine matching bestmove-only cases where the existing engine omitted statistics on very short searches.
- Release-target comparisons matched all 188 reference positions completely.
- An assertion-enabled build verified fast-pruned moves during search. Additional independent tests checked 270,515 legality/no-check certificates across 10,950 positions without a failure, plus all 4,096 between-square pairs.
- All 84 four-thread smoke searches returned legal moves.
No new UCI settings or replacement NNUE network are required. The UCI handshake reports Rusty Rival 1.0.59.
Downloads include standard and AVX2 Linux/Windows builds, Intel macOS and Apple Silicon macOS builds. The Intel macOS binary requires AVX2; the standard Linux/Windows binaries target x86-64-v2.
Full changelog: v1.0.58...v1.0.59