Killer moves supply the quiet-move ordering the search lacked: ~1.45x faster at depth 8 (up to 1.88x in quiet positions) with identical play. Adds bench.ps1 and test/bench_main.cpp to time the search, with a BENCH_DISABLE_KILLERS compile toggle so the script can measure before/after.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
- Refactor the search to negamax (single side-relative score + alpha/beta window)
- Add a shared, process-wide transposition table: lock-free XOR-verified slots,
persists across games, with depth-gated and difficulty-capped score reuse so a
weak bot can't borrow a stronger game's deeper analysis
- Drive the search with iterative deepening, seeding each depth's move ordering
from the previous one
- Seed prior-position history (Position::seed_history) over a new engine_best_move
history parameter so the engine detects threefold/50-move draws the FEN can't carry
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>