Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl



Basilisk 1.9.1 - new version chess engine


Basilisk, a UCI chess engine written in C++23.
Estimated strength: ~2400 ELO (single-thread calibration against Stockfish; FIDE Master / International Master level).
Author: Miloslav Macůrek

Basilisk 1.9.1 what's new?
Basilisk 1.9.1 is a patch release on 1.9.0 focused on speed, code health, and infrastructure. The search algorithm is bit-identical to 1.9.0 (bench 11941440, same node counts on every position); the only strength change is a modest speed gain.

Highlights
~+8.7 Elo from pure speed. A profile-guided optimization pass lifted search throughput +4.34% NPS with every change bench-identical (identical moves). A batch SPRT against the pre-pass build confirmed +8.69 ± 6.63 Elo at 3+0.03 (95% CI excludes zero). The wins: continuation-history hoisting in move scoring, a compile-time-specialized mobility loop, slider-attack reuse in eval, and SEE-verdict memoization.
~16× faster startup on the non-PEXT builds (generic / AVX2 / aarch64): magic bitboards are now precomputed and baked in instead of re-derived at every launch — 603 ms → 38 ms.
Codebase cleanup and hardening (verified strength-neutral, +0.17 ± 4.41 Elo over 6,000 games): a C++23 modernization pass, clang-tidy at zero findings under a checked-in policy, an internal make/unmake refactor, 16-bit move encoding, growable game history, and search telemetry counters.
Fixed
The ASan/UBSan test gate was unbuildable as shipped; the full suite now builds and passes under sanitizers and runs in CI.
Two search parameters were mis-advertised over UCI (stale default, one knob unregistered and untunable); all 46 search parameters are now generated from a single definition.
setoption Hash mid-game briefly allocated old and new transposition tables at once (transient ~3× memory spike).
POSIX builds no longer die on SIGPIPE when a GUI closes the output pipe.
A GCC-builtin call made real-MSVC builds impossible; replaced with standard C++23 <bit> (identical codegen).
Testing & CI
CI now builds and runs the full test suite on Linux, Windows, and macOS, plus a sanitizer job, on every master push.
A cross-platform bench-agreement check asserts all platforms produce the exact same search node count — and the release pipeline applies the same check across all published binaries.
New tests: engine-level malformed-input survival, strict legality sweeps over every packaged position suite, transposition-table byte-budget contracts, and magic-bitboard coverage.


Comments