Skip to content

v1.0.62

Choose a tag to compare

@github-actions github-actions released this 09 Sep 03:00
· 36 commits to main since this release

v1.0.62

One search change from the September 2026 search-efficiency audit (Notion: Search Efficiency Audit — September 2026; Linear NET-1154), merged as PR #89, plus two changes that have been on main since v1.0.61: the UCI info-output rewrite (PR #88, NET-1244) and the GPL-3.0-or-later licence (PR #87, NET-1245). This is the first release that ships LICENSE as an asset.

Strength

  • NET-1194 — structural late-move-reduction block. Quiet moves are now reduction candidates from the second searched move at depth 3 (was the fourth), and the table's move gate goes with it. Killers, the countermove, checking moves, check-extended and pawn-push-extended moves are ±1 terms instead of absolute exemptions, so in-check nodes are reduced too (king evasions one ply more). The four ±1 history thresholds, the move-count gate and the null-move threat term are replaced by one continuous term, the combined butterfly, countermove and follow-up history divided by 6167. The re-search ladder is now reduced null-window → full-depth null-window when the reduced search beats alpha → full-window re-search only when the verified score lies inside a PV node's window; the old middle step re-ran the reduced search on the full window, which at scout nodes is the identical search.
    • SPRT vs the branch point (v1.0.61 search), 1+0.01, 1 thread, Hash 128, paired 8moves_v3 openings, bounds [0, +10], α=β=0.05: H1 accepted at 3,230 games, 1277-1153-800, +13.3 ± 10.4 Elo, LOS 99.4%.
    • What ships is the fifth configuration tested. The full design, which also reduced captures from 3 − capture_history / 4952 and gave PV nodes one ply back, lost 39 ± 26 Elo and was rejected after 671 games; capture reductions alone accounted for about 45 Elo of that, because Rival orders good captures and recaptures right after the hash move where its capture history sits near zero. Captures and promotions are therefore never reduced, and the +1 that Ethereal reserves for non-PV nodes is applied everywhere. Both remain behind const switches (LMR_TACTICAL, LMR_PV_FLAG) for later experiments.
    • Fixed depth: bench (16 positions, depth 12) 3,701,048 → 2,479,174 nodes; depth-10 trees about 30% smaller on Arasan 18 and 11% smaller on STS positions. Fixed-node suites trade a little at small budgets (Arasan at 300k nodes 61/246 vs 65) for more at large ones (1M nodes 90/246 vs 76).
    • Limitations: measured at 1+0.01 only, like v1.0.60 and v1.0.61; the 10+0.1 scaling check and the Stockfish anchor ladder for the v1.0.59–v1.0.62 series are still to be run (NET-1242). The history divisor has not been tuned (NET-1240).

UCI output

  • NET-1244 — info lines behave like other engines'. One line per completed iteration from the iteration's own best line (the stop-time line reports the last completed depth), seldepth, hashfull, score mate N in moves, lowerbound/upperbound on aspiration fails after three seconds, MultiPV lines 2 and up labelled upperbound (the null-window root loop only knows that much about them; a true multi-PV search is future work), node totals flushed to the shared counter every 1,000 nodes so nodes and nps no longer step with several threads, and no trailing space in the PV. Search is node-identical to v1.0.61.

Licensing

  • NET-1245 — GPL-3.0-or-later. The engine links the GPL-licensed shakmaty crates for tablebase probing, so the project is now explicitly GPL-3.0-or-later; LICENSE is in the repository and attached to every release from this one on.

Bench signature

bench (16 positions, depth 12): 2,479,174 nodes, 1 thread.