v0.4.2
Features
- (search) Record every reverse futility candidate, fired or not [bench 8182450]
- (search) Add principal variation search [bench 7184673]
- (search) Skip hopeless captures in quiescence [bench 6708286] [elo +50 ±24 (sprt [0, 10] passed, 530 games, 10+0.1, vs 24ef995)]
- (search) Add static exchange evaluation [bench 6708286]
- (search) Order captures by static exchange evaluation [bench 6146070] [elo +12 ±18 (sprt [-10, 0] inconclusive, 840 games, 10+0.1, vs master)]
- (search) Skip losing captures in quiescence [bench 5684750] [elo +24 ±19 (sprt [-10, 0] passed, 746 games, 10+0.1, vs 6e6fdec)]
- (search) Reduce late quiet moves by one ply [bench 4395471] [elo +44 ±22 (sprt [0, 10] passed, 648 games, 10+0.1, vs 899197c)]
- (board) Tell whether a move gives check without making it [bench 4395471]
- (search) Add a model gated two ply reduction [bench 4186515] [elo +11 ±12 (sprt [-10, 0] passed, 2000 games, 10+0.1, vs master)]
- (search) Add late move pruning under the model gate [bench 4162584] [elo +18 ±11 (sprt [0, 10] passed, 2000 games, 10+0.1, vs master)]
- (uci) Let the residuals argument search a suite of its own [bench 4395471]
Bug Fixes
- (board) Drop a castle right or en passant square without its pieces [bench 4395471]
- (uci) Take startpos, fen and moves as whole words
- (uci) Refuse an argument word nobody recognises, and spell them once
Performance
- (search) Score the quiet moves only when the search reaches them [bench 6146018] [speed +3.4%]
- (board) Mask the castling rights, step the repetition walk in twos [bench 4395471] [speed +3.5%]
- (search) Sort the keys and put the moves in order once [bench 4395471] [speed +2.1%]
- (search) Sort only the keys the move ordering scored [bench 4395471] [speed +6.4%]
- (search) Mask the squares the history table is read by [bench 4395471] [speed -0.9%]
Refactor
- (search) Leave the swap's gain array uninitialised [bench 5684750]
- (board) Make Board's active_color, line_ply and key pub(crate) [bench 4395471]
- (board) Add try_make and try_undo for callers outside the crate [bench 4395471]
- (magic) Move the mailbox and the MAGIC static into magic.rs [bench 4395471]
- (uci) Read a go line once into a Go value
- (uci) Answer the three research commands through one path
- (board) Write the castling rights out from a table [bench 4395471]
- (uci) Move the instruments out of the protocol module
Documentation
- (board) Say where the mailbox lives and how big it is
- (search) Say what Limits::starting_at is for
Development
- (bench) Let the residuals command set the reservoir cap
- (bench) Score the terminal positions the replay reaches
- (docs) Correct three verdicts in the experiments ledger
- (docs) Record that on-demand move picking measured slower
- (bench) Count the rows whose claim overstates the reference
- (docs) Record the tuning that measured slower
- (ci) Count how the games in a match ended
- (ci) Keep the games and a manifest from every strength run
- (bench) Record which move cuts a sampled node off [bench 4395471]
- (deps) Bump the actions group with 2 updates
- (docs) Record the check exemption verdict
- (ci) Pool the shards of a match into one estimate
- (ci) Give each shard of a match its own slice of the book
- (ci) Split the strength match across shards
- (bench) Label each sampled reduced scout's fail low [bench 4395471]
- (magic) Import the test module's names in one use
- (ci) Play the calibrate rungs at the same time
- (workspace) Drop or fix the checks that were already being made
- (workspace) Clean up the docs, the comments and the test scaffolding [bench 4395471]
- (docs) Record the tuning this round measured slower
- (workspace) Hold the unsafe to the two crates that need it
- (workspace) Look for the licence notice everywhere a source file is
- (ci) Read a match's pairs as a sequential test
- (ci) Play an sprt in batches across the shards
- (docs) Correct and tidy the documentation
- (ci) Read the elo figure and its interval off the same pairs
- (ci) Carry an sprt's pairs between batches rather than its ratio
- (tactics) Convert the Strategic Test Suite to epd
- (tactics) Score the strategic suite beside the tactical one
- (ci) State the whole test in an sprt's trailer
- (ci) Drop the script tests that restate what another pins
- (board) Name the positions the tests repeat
- (search) Put the move ordering's repeated cases in tables
- (uci) Read the go line and the option cases from tables
- (docs) Record that the reverse futility margin is where it should be [bench 4395471]
Docker image: ghcr.io/aywrite/arche-lichess-bot:v0.4.2 (sha256:255d144c8f762ea69848e54cea7b99d2aaa6a4a415bb3765bd826f5df6fb8e06)
Performance compared to v0.4.1 | +141 ±28 Elo (500 games)
Estimated rating | 2405 ±38 on the ccrl blitz scale (104 games)