Improved evaluation
General
- Optimised threefold repetition checking
- Error messages are now printed to STDERR for easier logging
- Significantly reduced memory overhead in general
- Each thread now gets a thread local pawn hash (1MiB/thread)
- The Move From Hash feature can no longer return empty moves (this was likely the cause of illegal moves in 5-piece Syzygy positions)
- The Move From Hash feature will no longer be used if the hash move leads to threefold repetition
- Updated GCC to 9.1.0 (MSYS2)
- Added a znver2 compile for the upcoming Ryzen 3000 series.
Search
- Quiescence root nodes are no longer counted twice
Evaluation
- Moved pawn structure evaluation to a separate file
- Retuned all parameters
- Added a parameter for candidate passed pawns
- Pawn structure evaluation is now performed setwise with bitboards
- Entries in the pawn hash table have been reduced in size
- King safety evaluation function now allows for attacks up to size 128
This should finally fix the illegal move issue.
Elo gains over 0.6.1 are reasonable, measured to be around +30 against a small gauntlet of 9 engines.