Pushing a tag matching v* builds and publishes self-contained binaries for
Linux, macOS, and Windows. The workflow can also be started manually to produce
downloadable build artifacts without creating a GitHub release.
Choose the binary for your CPU:
arm64is for Apple Silicon or 64-bit ARM Linux.x64is the portable choice for any 64-bit Intel/AMD processor.x64-avx2is faster on processors with AVX2 (roughly Intel Haswell/AMD Excavator or newer).x64-avx512uses AVX-512F and AVX-512BW and only starts on processors that support both extensions.
SleepMind selects its NNUE SIMD implementation at compile time, not at runtime.
Running an AVX build on an unsupported processor can terminate with an illegal
instruction; use the portable x64 archive when unsure.
Every issue is implemented and evaluated separately:
-
Start from the unchanged parent commit and create a dedicated issue branch.
-
Run a clean build of both binaries:
make clean && make both -
Before changing code, snapshot the baseline build:
./variants.sh create <issue>_base
-
Implement only the scoped issue, then run the clean build and all tests named in the issue.
-
Snapshot the tested implementation:
./variants.sh create <issue>_new
-
Run the mandatory LTC SPRT with the repository defaults:
TC=60+0.6 ./tournament.sh sprt <issue>_new <issue>_base 2>&1 \ | tee <issue>_sprt.log
The test uses
/home/paschty/Downloads/2moves_v2.pgn, paired colors, and-repeat. Unless an issue explicitly says otherwise, useH0=0,H1=+5, andalpha=beta=0.05. Always start the SPRT with output logging as shown above and keep the complete log file. -
Push the branch and create a pull request. Record the final W/L/D, Elo estimate and error, LLR decision, time control, base commit, and test commit in the PR, and attach the SPRT log file to it.
-
Merge only after a passing SPRT. If the SPRT fails, still create the PR with the implementation and complete result, then close it without merging. An inconclusive SPRT must not be reported as an accepted Elo gain.