Skip to content

Rarog 2.1.0

Choose a tag to compare

@maelic13 maelic13 released this 19 Jun 19:33

The release focuses on a repo-contained SPRT/SPSA testing
harness and a long sequence of individually gated search-tuning and
robustness fixes. The single largest change is a Stockfish-style
time-management rewrite that fixed a movetime budget bug — by far the
dominant contributor to the cumulative strength gain.

Highlights

  • Time management rewrite (+81 Elo, confirmed by SPRT): fixed a bug where
    a small movetime budget (e.g. 100 ms/move) collapsed search to depth 1
    because the move-overhead subtraction could reduce the budget to ~1 ms.
    Clock-mode budgeting now follows Stockfish's structure (optimum/maximum
    scaling, falling-eval / best-move-instability / effort-factor stopping).
  • Time-safety valve: eliminated clock-mode time forfeits at fast time
    controls (28 forfeits in a ~2,200-game gauntlet → 0), without regressing
    normal-time allocation. Re-confirmed across two independent test harnesses.
  • Search tuning, each independently SPRT-confirmed: quiescence TT-bound
    stand-pat refinement (+6.5 Elo), per-move quiet futility pruning (+8 Elo),
    a harness-corrected LMR retune (+4 Elo), and an SPSA-tuned pruning/margin
    pass (+6 Elo).
  • New repo-local testing/tuning harness: fastchess-based SPRT, SPSA via
    weather-factory, PGO test-build scripts — all repo-contained, no
    machine-global paths.
  • Minor robustness/perf cleanup: shrunk a hot-path struct, removed a
    per-call board allocation, removed a provably-dead search arm.

Evaluated and rejected (for transparency)

Several speculative ports were tried and did not survive SPRT testing, so
they were reverted rather than shipped: a ProbCut port (−24.5 Elo), history
persistence across searches (−12.4 Elo), a singular-extension
double-extension cap (inconclusive), and an LMR "do-deeper" re-search margin
(−1.4 Elo).

Full changelog: see CHANGELOG.md