Skip to content

v0.4.8-rc.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 10:41
· 3 commits to master since this release

Features

  • (uci) Add a debug log of every line read and said
  • (search) Widen the late move pruning band to -5457 [bench 5769245]
  • (eval) Report how the tuner's L-BFGS stopped [bench 5769245]
  • (eval) Refit the pair term's factors at a weaker ridge of 3e-7 [bench 5966188] [elo +10 ±7 (6000 games, 10+0.1, vs d073151)]

Bug Fixes

  • (uci) Answer an isready read behind a queued go infinite
  • (search) Score a stalemate at the quiescence horizon as a draw [bench 6369864] [elo +3 ±8 (sprt [-10, 0] passed, 3000 games, 10+0.1, vs e01fb9a)]
  • (board) Stop the swap walk at its last slot rather than write past it [bench 5769245]
  • (board) Read a move name's promotion piece whatever its case [bench 5769245]
  • (uci) Drop a line that is not utf-8 rather than leave the session
  • (uci) Search a depth of zero or less as depth one
  • (uci) Refuse a debug log path that is not a regular file
  • (board) Try a promotion or an en passant capture from the table before generating [elo -4 ±10 (sprt [-10, 0] inconclusive, 2000 games, 10+0.1, vs ffdb1f0)] [bench 5965973]

Performance

  • (eval) Weigh mobility and the king attack zone at each piece in the shared walk [bench 6369864] [speed +0.4% (bench nps, 95% interval -0.8% to +1.6%, 60 interleaved rounds over shuffled layouts vs d1beb6b)]
  • (board) Read the static exchange evaluation from a table of attacker counts [bench 6369864] [speed +2.1% (bench nps, 95% interval +0.8% to +3.2%, 60 interleaved rounds over shuffled layouts vs d1beb6b)]
  • (board) Read a piece's key, piece square value and factors from one row per square [bench 6369864] [speed +2.3% (bench nps, 95% interval +0.5% to +4.0%, 60 interleaved rounds over shuffled layouts vs 9d71072)]
  • (board) Test a king step's legality before making the move [bench 6369864] [speed +0.9% (bench nps, 95% interval -0.7% to +2.6%, 60 interleaved rounds over shuffled layouts vs 4a05e83)]
  • (board) Restore the pawn key and accumulator by copy in the unmake [bench 6369864] [speed +0.2% (bench nps, 95% interval -2.1% to +2.5%, 60 interleaved rounds over shuffled layouts vs 9f0d56f)]
  • (search) Generate captures ahead of quiet moves so the ordering keys only the captures [bench 5769245] [speed +5.4% (bench nps, 95% interval +3.5% to +7.2%, 60 interleaved rounds over shuffled layouts vs cc865ba)]
  • (search) Key the quiet moves four at a time with SSE and pick the least by a vector minimum [bench 5769245] [speed +0.3% (bench nps, 95% interval -1.3% to +2.1%, 60 interleaved rounds over shuffled layouts vs fe513cb)]
  • (search) Probe a transposition table bucket with one SSE2 key compare and a generation mask [bench 5966188] [speed +0.6% (bench nps, 95% interval -0.9% to +2.0%, 60 interleaved rounds over shuffled layouts vs f22a1fe)]
  • (search) Hoist the node checks of late move reductions and of futility and move count pruning out of the move loop [bench 5966188] [speed -0.8% (bench nps, 95% interval -2.2% to +0.5%, 60 interleaved rounds over shuffled layouts vs 44c7159)]
  • (search) Step over the pruned quiet moves in one jump rather than one place at a time [bench 5966188] [speed +0.7% (bench nps, 95% interval -0.8% to +2.0%, 60 interleaved rounds over shuffled layouts vs 92829a8)]

Refactor

  • (search) Count the transposition table's cutoffs and stores on the searcher [bench 6407589]
  • (board) Read the swap table's piece values off the swap's own [bench 5966188]
  • (uci) Dispatch the binary's commands from one array of instruments
  • (search) Move the search's tests into a file of their own [bench 5966188]
  • (search) Key the killers by comparing indexes rather than lending their ranks to the history [bench 5966188]
  • (search) Carry the node's evaluation memo as a Score [bench 5966188]
  • (search) Name the four states of the root bounds [bench 5966188]
  • (search) Split alpha_beta into named steps and put each instrument behind one call [bench 5966188]
  • (board) Shrink the history ring from 1,024 plies to 256 [bench 5965973]

Documentation

  • (eval) Restate mobility's cost against the 5% budget at 8f9dafe
  • (uci) Shorten the comments on the debug log, the isready fix and the games suite
  • (board) Shorten the comments on the swap table, the kept stack and the king step [bench 5769245]
  • (search) Shorten the comments on the SSE quiet keying and the stalemate test [bench 5769245]
  • (board) Say why the move generator's writes are sound whatever the list held [bench 5966188]

Development

  • (search) Pin how quiescence scores a stalemate at the horizon
  • (bench) Add a games suite searched to a node budget beside the bench
  • (docs) Correct the documentation the changes since 0.4.7 left behind
  • (uci) Hold a stop read while idle to being counted like any other
  • (ci) Test the quiet ordering's scalar forms on the baseline x86-64 target
  • (search) Check in debug builds that the killers' lent ranks are put back [bench 5966188]
  • (board) Check the static exchange's fast exits against the walk in debug builds [bench 5966188]
  • (deps) Bump the mache actions from v0.5.0 to v0.7.1
  • (ci) Name the 40/15 scale through mache rather than rewriting its line

Docker image: ghcr.io/aywrite/arche-lichess-bot:v0.4.8-rc.1 (sha256:599e4a49c081066e508c7f4e1b3f81935745f73dff665af76615a913f22f5d71)

Performance compared to v0.4.7 | +57 ±23 Elo (500 games)

Estimated rating | 2897 ±29 (95%) on the ccrl blitz scale (400 games)

Estimated rating | 2940 ±60 (95%) on the ccrl 40/15 scale (96 games)