Skip to content
Draft
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
268 commits
Select commit Hold shift + click to select a range
2db260c
Implemented check to see if a position is legal/valid, added setPiece…
Dannyj1 Oct 8, 2024
02e9609
Implemented makeMove and unmakeMove, started perft implementation
Dannyj1 Oct 8, 2024
0b98f79
Implemented setting board from FEN, implemented perft. Move generatio…
Dannyj1 Oct 9, 2024
f257129
Fixed many move generation issues, perft accurate up until depth 4
Dannyj1 Oct 9, 2024
14f567a
Implemented en passant, perft accurate up until depth 5. Depth 6 is i…
Dannyj1 Oct 9, 2024
0a70888
Remove some TODO comments
Dannyj1 Oct 9, 2024
bf3790a
Implemented position command, fixed some movegen bugs. Perft depth 6 …
Dannyj1 Oct 10, 2024
515cc55
Fixed en passant bug. Startpos perft accurate until depth 6.
Dannyj1 Oct 10, 2024
41e4cde
Performance improvements
Dannyj1 Oct 10, 2024
f03dc9a
Implemented castling, startpos perft accurate up until depth 7 (didn'…
Dannyj1 Oct 12, 2024
5e72925
Fixed castling bugs
Dannyj1 Oct 13, 2024
abb88e5
Implemented promotions, fix more castling bugs. Move gen seems to be …
Dannyj1 Oct 13, 2024
cd7b627
Slight performance improvements
Dannyj1 Oct 13, 2024
6bead70
Create doxygen.yml
Dannyj1 Oct 15, 2024
c888138
Update doxygen.yml
Dannyj1 Oct 15, 2024
2306222
Update doxygen.yml
Dannyj1 Oct 15, 2024
dc4ed04
Add Doxyfile
Dannyj1 Oct 15, 2024
35f7efc
Added a very basic material evaluation, commented some important func…
Dannyj1 Oct 19, 2024
3f27a7d
Added more documentation
Dannyj1 Oct 19, 2024
1385ded
Basic PV search implementation that isn't done yet.
Dannyj1 Oct 29, 2024
2f75aa1
Implement zobrist hashing
Dannyj1 Nov 3, 2024
2bedb00
Implement halfmove and fullmove clock
Dannyj1 Nov 5, 2024
bf81a54
Add devcontainer.json
Dannyj1 Nov 20, 2024
8a42f30
Install devcontainer llvm prerequisites
Dannyj1 Nov 20, 2024
4872019
Update devcontainer with newer clang and IWYU. Ran IWYU
Dannyj1 Dec 1, 2024
fde5463
Update license
Dannyj1 Jan 4, 2025
2037174
Merge remote-tracking branch 'origin/rewrite' into rewrite
Dannyj1 Jan 4, 2025
8a977fa
Implemented basic iterative deepening and a basic "go" command for uci.
Dannyj1 Jan 27, 2025
94e1add
Implemented qsearch and mobility evaluation
Dannyj1 Jan 29, 2025
45260de
Significant performance improvements
Dannyj1 Jan 31, 2025
f0702ef
Further performance improvements
Dannyj1 Jan 31, 2025
ed468d7
Implement benchmarking for openbench, disable mobility eval so it can…
Dannyj1 Jan 31, 2025
e4a9765
Re-enable mobility eval so it can be tested
Dannyj1 Jan 31, 2025
ef57626
Guarantee that the program searches at least through depth 1, also on…
Dannyj1 Jan 31, 2025
ece3709
Fix time management issues
Dannyj1 Jan 31, 2025
de73dc3
Oops
Dannyj1 Jan 31, 2025
96fbcad
Re-enable mobility eval for testing
Dannyj1 Jan 31, 2025
668c843
Hopefully fix some illegal moves and crashing when time is low
Dannyj1 Jan 31, 2025
94507eb
Re-enable mobility eval for testing
Dannyj1 Jan 31, 2025
ec2b258
Implement transposition table
Dannyj1 Jan 31, 2025
fe39d8f
TT bug fixes
Dannyj1 Feb 1, 2025
02175ed
Don't add results to TT when search is stopped to prevent bad entries…
Dannyj1 Feb 1, 2025
9190be5
Hopefully fixed crashing issue
Dannyj1 Feb 1, 2025
3ab7b93
Fix illegal moves when very low on time
Dannyj1 Feb 1, 2025
eca2a34
Maybe fix illegal moves when very low on time
Dannyj1 Feb 1, 2025
74e185d
Updated TT replacement strategy to prefer exact nodes over other node…
Dannyj1 Feb 1, 2025
cd378da
Another attempt at fixing illegal moves when low on time
Dannyj1 Feb 1, 2025
5703277
Fix compilation on certain compilers
Dannyj1 Feb 1, 2025
49867b3
Fix compilation on certain compilers
Dannyj1 Feb 1, 2025
b7e7f3a
Update benchmark command in CI
Dannyj1 Feb 1, 2025
796aff6
Add move ordering based only on TT
Dannyj1 Feb 1, 2025
d044a64
Disable TT for now, implement SEE pruning in qsearch
Dannyj1 Feb 2, 2025
7b66f2b
SEE fix
Dannyj1 Feb 2, 2025
304bbc5
Fixed checkmate checks missing in qsearch. Moved SEE to the right fun…
Dannyj1 Feb 2, 2025
cdb9ca0
Disable TT related UCI code
Dannyj1 Feb 2, 2025
84c6523
Add evasion generation for checkmate detection in qsearch
Dannyj1 Feb 2, 2025
9d8710c
Fix king moves not being generated in check when using evasions gener…
Dannyj1 Feb 2, 2025
532f259
Shorten benchmark
Dannyj1 Feb 2, 2025
57aed3d
Fix issue with en passant being parsed incorrectly through UCI
Dannyj1 Feb 2, 2025
192694d
Fixed half move and full move clock not being fully parsed from FEN s…
Dannyj1 Feb 2, 2025
961e46c
Added PV, corrected some weird iterative deepening behavior
Dannyj1 Feb 3, 2025
4d948dc
Fix issues with board resetting when the position command is called.
Dannyj1 Feb 3, 2025
358db8a
Add note to README
Dannyj1 Feb 3, 2025
54d08e6
Fix README formatting
Dannyj1 Feb 3, 2025
a4671c6
Forgot to implement isDraw...
Dannyj1 Feb 3, 2025
4d992cf
Fixed issue where the 50-move rule takes priority over checkmate
Dannyj1 Feb 3, 2025
63629d9
Add evasion movegen to pvsearch
Dannyj1 Feb 3, 2025
5edab0c
Fixed en passant zobrist hash update always happening, even if it sho…
Dannyj1 Feb 3, 2025
f20a820
Added PV move sorting
Dannyj1 Feb 3, 2025
7dea412
Added TT and TT move sorting
Dannyj1 Feb 3, 2025
955ca6c
Add delta pruning to qSearch
Dannyj1 Feb 4, 2025
68ed389
Fix failing test
Dannyj1 Feb 4, 2025
1d5b5f6
Remove delta pruning, add see pruning to qSearch
Dannyj1 Feb 4, 2025
52b4bd3
Use a faster SEE algorithm (largely based on the one from Ethereal)
Dannyj1 Feb 4, 2025
651f29c
No SEE pruning when in check
Dannyj1 Feb 4, 2025
3ce1b54
Pass move instead of square to see
Dannyj1 Feb 4, 2025
055e27c
Added PST evaluation
Dannyj1 Feb 4, 2025
9fb3b81
Merge material and PSTQ eval
Dannyj1 Feb 4, 2025
d9d3b22
Fix PSTQ eval being wrong
Dannyj1 Feb 5, 2025
1b435aa
Make sure PSTs are initialized properly
Dannyj1 Feb 5, 2025
f5dfe32
Prepare movepicker for more move scoring implementations, prepare cod…
Dannyj1 Feb 5, 2025
dcce535
Attempting Internal Iterative Reductions
Dannyj1 Feb 6, 2025
ef9fe23
Revert "Attempting Internal Iterative Reductions"
Dannyj1 Feb 6, 2025
366abf5
MVV-LVA move ordering
Dannyj1 Feb 6, 2025
4d8d318
Try SEE in move ordering, but only in pvSearch
Dannyj1 Feb 7, 2025
0d3701f
Revert "Try SEE in move ordering, but only in pvSearch"
Dannyj1 Feb 7, 2025
127b3dd
History gravity + history malus
Dannyj1 Feb 7, 2025
e03878e
Fixed typo where history was updated on captures instead of quiet moves
Dannyj1 Feb 7, 2025
a129402
Countermove heuristic
Dannyj1 Feb 7, 2025
cbe2dbf
Fix history malus being applied to the move causing the beta cutoff, …
Dannyj1 Feb 8, 2025
15a1d83
Re-enable countermove heuristic
Dannyj1 Feb 8, 2025
b6c5202
Remove countermove heuristic, fix default TT move being A1 instead of…
Dannyj1 Feb 8, 2025
5df11f9
Fix bestmove not being set in pvSearch, fix bestmove not being kept t…
Dannyj1 Feb 9, 2025
c0b6fcc
Add basic Null Move Pruning implementation
Dannyj1 Feb 9, 2025
492ce42
Make NMP R constant for now
Dannyj1 Feb 9, 2025
ab84ce7
Only NMP when eval >= beta
Dannyj1 Feb 9, 2025
8fbd2db
Revert "Only NMP when eval >= beta"
Dannyj1 Feb 9, 2025
22fdd76
More dynamic R in NMP
Dannyj1 Feb 10, 2025
d7aef66
More aggressive NMP, but don't drop straight into qSearch
Dannyj1 Feb 10, 2025
c354674
Revert "More aggressive NMP, but don't drop straight into qSearch"
Dannyj1 Feb 10, 2025
fc2c427
Revert "More dynamic R in NMP"
Dannyj1 Feb 10, 2025
79be322
Consistency in search regarding fail-hard
Dannyj1 Feb 10, 2025
2730eb1
Don't allow NMP to drop into qSearch
Dannyj1 Feb 10, 2025
dada7ae
Revert "Don't allow NMP to drop into qSearch"
Dannyj1 Feb 10, 2025
3570298
Make NMP reduction factor dynamic (based on depth only)
Dannyj1 Feb 10, 2025
53a3231
Use fail-soft instead of fail-hard
Dannyj1 Feb 11, 2025
f89c276
Don't consider underpromotions in qSearch
Dannyj1 Feb 12, 2025
6199d72
Revert "Don't consider underpromotions in qSearch"
Dannyj1 Feb 12, 2025
b29b4f0
Don't do stand pat while in check
Dannyj1 Feb 12, 2025
5c55d5c
Basic LMR implementation
Dannyj1 Feb 12, 2025
04a6b5d
Reduce moves in LMR less when the current node is a PV or when the cu…
Dannyj1 Feb 12, 2025
7310695
Revert "Reduce moves in LMR less when the current node is a PV or whe…
Dannyj1 Feb 12, 2025
860a2c7
Start LMR ealier in non-PV nodes
Dannyj1 Feb 12, 2025
c365a0d
Fix LMR starting too early
Dannyj1 Feb 12, 2025
7c585de
LMR searches should be Non-PV/Regular searches
Dannyj1 Feb 12, 2025
e68bc14
Reduce less when in PV and when in check
Dannyj1 Feb 12, 2025
3fc29d7
Reduce less when a move gives checks
Dannyj1 Feb 12, 2025
f28e08c
Reduce LMR less when a move gives checks, is a promotion or is a capture
Dannyj1 Feb 12, 2025
d8433d9
No LMR foraptures and promotions
Dannyj1 Feb 13, 2025
596d922
No LMR for captures and promotions in PV only
Dannyj1 Feb 13, 2025
4cbd86f
Speed up movepicker sorting, rework evaluation
Dannyj1 Feb 13, 2025
0210d70
Check extension
Dannyj1 Feb 14, 2025
b049794
Check extension before dropping into qSearch
Dannyj1 Feb 14, 2025
d3e0a09
Rework parts of eval again, implemented eval tracing, started impleme…
Dannyj1 Feb 17, 2025
4f29883
Basic gradient descent tuner implementation
Dannyj1 Feb 18, 2025
aecf02c
Rework parts of eval again, implemented eval tracing, started impleme…
Dannyj1 Feb 19, 2025
8ee63db
Hopefully fixed some tuner issues
Dannyj1 Feb 19, 2025
35625c5
Tweaked hyperparameters
Dannyj1 Feb 20, 2025
f0b5d4d
Don't consider enemy king square in mobility evaluation
Dannyj1 Feb 20, 2025
3b8a4be
Restore base evaluation features to benchmark new eval terms against
Dannyj1 Feb 20, 2025
14439a6
Exclude squares attacked by pawns from mobility
Dannyj1 Feb 21, 2025
c1cbd93
Added basic square control evaluation to augment mobility evaluation
Dannyj1 Feb 22, 2025
488ce6c
Correct mate score threshold check in TT probe
Dannyj1 Apr 3, 2025
a572bff
Bishop pair bonus
Dannyj1 May 28, 2025
c29df0d
Add pawn shield eval bonus
Dannyj1 May 28, 2025
211a7f4
Fix pawn shield rewarding doubled pawns
Dannyj1 May 28, 2025
4aab013
Different board side/king file detection for pawn shield
Dannyj1 Jun 12, 2025
267c829
Decrease pawnshield bonus, Revert "Different board side/king file det…
Dannyj1 Jun 12, 2025
a9a0da8
Revert "Decrease pawnshield bonus, Revert "Different board side/king …
Dannyj1 Jun 13, 2025
22e983c
Revert "Different board side/king file detection for pawn shield"
Dannyj1 Jun 13, 2025
1d68ff6
Revert "Fix pawn shield rewarding doubled pawns"
Dannyj1 Jun 13, 2025
082cafd
Revert "Add pawn shield eval bonus"
Dannyj1 Jun 13, 2025
01cec88
Add backward pawn evaluation
Dannyj1 Jun 13, 2025
86f33e4
Add backward pawn on (half-)open files evaluation
Dannyj1 Jun 13, 2025
a42a5e0
Increase backward pawn penalty
Dannyj1 Jun 13, 2025
4d508c1
Revert "Increase backward pawn penalty"
Dannyj1 Jun 13, 2025
12a2001
Fix backwards pawn on open file detection
Dannyj1 Jun 13, 2025
fe88793
Doubled pawn evaluation
Dannyj1 Jul 27, 2025
de7a9dd
Knight outpost evaluation
Dannyj1 Jul 30, 2025
4f3f4a8
Knight potential outpost evaluation
Dannyj1 Jul 30, 2025
e8fc7d5
Revert "Knight potential outpost evaluation"
Dannyj1 Jul 30, 2025
3f6b17b
Use proper pawn spans for outpost evaluation
Dannyj1 Jul 30, 2025
8f3056b
Fix outpost evaluation
Dannyj1 Jul 30, 2025
68eed15
Fix outpost evaluation: forgot a shift operation
Dannyj1 Jul 30, 2025
fb24bc1
Performance improvements
Dannyj1 Oct 1, 2025
7fda1b2
Pawn shield evaluation
Dannyj1 Oct 2, 2025
a1f2356
Fix gradient descent tuner
Dannyj1 Oct 2, 2025
4f9c2b7
Fix incorrect stand-pat evaluation in check
Dannyj1 Oct 2, 2025
f6ae755
Tweak outpost evaluation
Dannyj1 Oct 2, 2025
29c013e
Fix 3-fold repetition actually checking for 2-fold repetition
Dannyj1 Oct 3, 2025
34b12ef
Don't perform a re-search when score < beta in pvSearch.
Dannyj1 Oct 3, 2025
d5d63a3
Don't allow LMR to reduce captures and promotions in non-PV nodes
Dannyj1 Oct 3, 2025
cde01d3
Slight optimization of getSquareAttackers
Dannyj1 Oct 3, 2025
8a9e2b3
Fix TT best move being wrong when a beta-cutoff happens
Dannyj1 Oct 3, 2025
f2b1cad
Fix wrong node type being assigned in the TT in certain cases.
Dannyj1 Oct 3, 2025
890277c
Try different TT replacement scheme
Dannyj1 Oct 3, 2025
d57618a
Revert "Try different TT replacement scheme"
Dannyj1 Oct 3, 2025
b0fb1aa
Try depth * depth for history heuristic
Dannyj1 Oct 3, 2025
fdb2d04
Revert "Try depth * depth for history heuristic"
Dannyj1 Oct 3, 2025
41647ac
Fix en passant moves not being generated in qsearch's movegen
Dannyj1 Oct 3, 2025
a2f3509
Make sure history heuristic gets cleared between benchmark positions …
Dannyj1 Oct 3, 2025
bd760c3
Fix an issue where qsearch movegen did not generate promotion moves
Dannyj1 Oct 3, 2025
d2f4e55
Fix an issue where evasion movegen did not generate en passant moves
Dannyj1 Oct 3, 2025
d61ec13
Move draw check to earliest possible moment in pvSearch and qSearch
Dannyj1 Oct 4, 2025
b38d96b
Fix some draw detection issues
Dannyj1 Oct 4, 2025
cd7c9d7
Fix unmakeMove making board hash history inaccurate in some cases
Dannyj1 Oct 4, 2025
1c5967a
Made SEE less bug-prone
Dannyj1 Oct 4, 2025
51552d6
Remove redundant draw checks
Dannyj1 Oct 4, 2025
a1278c7
Add SEE + Capture History to move ordering
Dannyj1 Oct 4, 2025
073fa05
Don't generate castling moves during qsearch or evasions movegen
Dannyj1 Oct 4, 2025
2cb8b66
Tweak benchmark positions
Dannyj1 Oct 5, 2025
39bb64d
Fix en passant moves often not being considered captures in several p…
Dannyj1 Oct 5, 2025
40b95aa
Fix SEE logic for en passant moves causing wrong SEE evaluations
Dannyj1 Oct 5, 2025
254fdab
Add castling tests
Dannyj1 Oct 5, 2025
762ea0f
Fix qsearch movegen generating more moves than it should
Dannyj1 Oct 5, 2025
c4bfdb6
Revert "Made SEE less bug-prone"
Dannyj1 Oct 6, 2025
1d5b497
Refactor some movegen genMask weirdness
Dannyj1 Oct 6, 2025
547f72d
Add virtual mobility
Dannyj1 Oct 6, 2025
15af1ea
Exclude opponent pieces from virtual mobility
Dannyj1 Oct 6, 2025
0227382
Revert "Exclude opponent pieces from virtual mobility"
Dannyj1 Oct 6, 2025
a26b4b8
Revert back to basic evaluation terms
Dannyj1 Oct 7, 2025
9dfaaa2
Don't update history table for promotions, add promotions to move ord…
Dannyj1 Oct 7, 2025
94be73a
Add killer move heuristic
Dannyj1 Oct 7, 2025
40125f7
Revert "Add killer move heuristic"
Dannyj1 Oct 7, 2025
56d3ed5
Make LMR less aggressive
Dannyj1 Oct 7, 2025
f1d6a16
Tweak benchmark
Dannyj1 Oct 7, 2025
2f662c0
Even less aggressive LMR
Dannyj1 Oct 7, 2025
8031eda
Implement very basic futility pruning
Dannyj1 Oct 7, 2025
b76cce7
Fix compilation on GCC
Dannyj1 Oct 7, 2025
5d64f05
Add stat tracing in search for debugging purposes
Dannyj1 Oct 8, 2025
9db5cf7
Fix TT indexing issues affecting hitrate
Dannyj1 Oct 8, 2025
31ef82e
Make validationHash 16 bits instead of 64 in TT
Dannyj1 Oct 8, 2025
dba2e3e
Add support for the other options in the UCI go command
Dannyj1 Oct 8, 2025
1d4babd
Remove futility pruning
Dannyj1 Oct 9, 2025
63a1b59
Add proper futility pruning
Dannyj1 Oct 9, 2025
b7c09c1
More aggressive futility pruning
Dannyj1 Oct 9, 2025
dbde7b3
Added more positions to benchmark and increased depth
Dannyj1 Oct 9, 2025
76f6cb4
More aggressive NMP
Dannyj1 Oct 9, 2025
ba7fa81
Use LMR after 2 moves are searched instead of 3
Dannyj1 Oct 9, 2025
6551769
Revert "Use LMR after 2 moves are searched instead of 3"
Dannyj1 Oct 9, 2025
52613d5
Attempt at fixing crash on one of the uci commands that happens under…
Dannyj1 Oct 9, 2025
527cc92
Implement uci quit command
Dannyj1 Oct 9, 2025
4332295
Attempt to fix badalloc on larger table sizes
Dannyj1 Oct 9, 2025
5220263
Reverse futility pruning
Dannyj1 Oct 10, 2025
3e78f3c
No reverse futility pruning when there is no TT move
Dannyj1 Oct 10, 2025
64571eb
Revert "No reverse futility pruning when there is no TT move"
Dannyj1 Oct 10, 2025
fea71d0
Add killer move heuristic
Dannyj1 Oct 10, 2025
f2e0e47
Disable killer moves for now, fix conditions on PV re-search
Dannyj1 Oct 11, 2025
f80b2b2
Properly handle LMR re-searches
Dannyj1 Oct 11, 2025
0ccc2b2
Refactor and clean up search logic
Dannyj1 Oct 11, 2025
151e71f
Only NMP when eval >= beta
Dannyj1 Oct 12, 2025
b4cc148
Fix pvMove indexation issue in move_picker.cpp
Dannyj1 Oct 12, 2025
a8039f0
Singular extensions
Dannyj1 Oct 14, 2025
305ca30
Disable singular extensions for now, fix TT depth not being able to f…
Dannyj1 Oct 15, 2025
80b0592
Use simpler and more effective TT replacement scheme
Dannyj1 Oct 15, 2025
0e803e0
Preserve best TT move when overwriting an entry that has a best move …
Dannyj1 Oct 15, 2025
93c5d05
Fix invalid assert
Dannyj1 Oct 15, 2025
8846833
Remove redundant and worse performing previousPvLine from board and m…
Dannyj1 Oct 15, 2025
d55c43a
Remove INITIAL_ALPHA and INITIAL_BETA
Dannyj1 Oct 15, 2025
6fa1d39
Killer moves
Dannyj1 Oct 16, 2025
e395a6b
Add doubled and tripled pawn eval
Dannyj1 Oct 17, 2025
eadcfaa
Update profiling flags in CMakeLists.txt
Dannyj1 Oct 20, 2025
d4d77e0
Add TT prefetch
Dannyj1 Oct 20, 2025
0874e15
Move board.getOccupiedBitboard() calls outside evaluation loops
Dannyj1 Oct 20, 2025
f00c713
Aspiration windows
Dannyj1 Oct 21, 2025
0a61765
Fix compilation on certain systems or compiler
Dannyj1 Oct 21, 2025
a2040fe
More aggressive LMR
Dannyj1 Oct 21, 2025
81da83e
Improved mobility eval
Dannyj1 Oct 24, 2025
f201d8c
Revert "Improved mobility eval"
Dannyj1 Oct 24, 2025
75bc6fc
Add gradient descent tuner with SPSA gradient estimation
Dannyj1 Oct 24, 2025
0efed31
Testing some tuner improvements
Dannyj1 Oct 24, 2025
36deb15
Some more tuner changes
Dannyj1 Nov 16, 2025
1b4e8b4
Revert back to untuned values
Dannyj1 Nov 17, 2025
7a2ba62
Internal iterative reductions (IIR)
Dannyj1 Nov 17, 2025
1c39af0
Revert "Internal iterative reductions (IIR)"
Dannyj1 Nov 17, 2025
a3de839
Fix compilation on certain compilers
Dannyj1 Nov 17, 2025
7c44d94
Exclude moves that give check from futility pruning
Dannyj1 Nov 17, 2025
0c8783a
Test skipping LMR while in check or if a move gives check
Dannyj1 Nov 18, 2025
6a122e6
Revert "Test skipping LMR while in check or if a move gives check"
Dannyj1 Nov 18, 2025
4118626
Improved performance of move legality checking. Reduced the amount of…
Dannyj1 Nov 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ctest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Setup Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: "17"
version: "18"
arch: "x64"

- name: Configure CMake & Build
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
fail-fast: false
matrix:
include:
- os: ubuntu-22.04
- os: ubuntu-latest
build-name: Linux
artifact-extension: .tar.gz
config-command: cmake -DCMAKE_BUILD_TYPE=Release -DAPPEND_VERSION_USE_GIT=OFF .
Expand All @@ -39,9 +39,9 @@ jobs:

- name: Setup Clang (Linux)
if: runner.os == 'Linux'
uses: KyleMayes/install-llvm-action@v1
uses: KyleMayes/install-llvm-action@v2
with:
version: "17"
version: "18"

- name: Setup msys and install required packages
if: runner.os == 'Windows'
Expand Down Expand Up @@ -91,7 +91,7 @@ jobs:

create-release:
needs: build
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/valgrind.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Setup Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: "17"
version: "18"
arch: "x64"

- name: Install valgrind
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@
/cmake-build-debug/
/cmake-build-release/
/perft.txt
/quiet-labeled.epd
/src/uci-specification.txt
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 21 additions & 21 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
# along with Zagreus. If not, see <https://www.gnu.org/licenses/>.

cmake_minimum_required(VERSION 3.25)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD 23)
project(Zagreus)
set(ZAGREUS_VERSION_MAJOR "5")
set(ZAGREUS_VERSION_MAJOR "6")
set(ZAGREUS_VERSION_MINOR "0")

# Default values
Expand Down Expand Up @@ -200,27 +200,27 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${BUILD_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${BUILD_FLAGS}")

file(GLOB inc_zagreus "src/*.h" "src/*.cpp")
file(GLOB inc_senjo "senjo/*.h" "senjo/*.cpp")

add_executable(Zagreus src/main.cpp ${inc_senjo} ${inc_zagreus})
add_executable(Zagreus src/main.cpp ${inc_zagreus})

target_compile_definitions(Zagreus PRIVATE ZAGREUS_VERSION_MAJOR="${ZAGREUS_VERSION_MAJOR}")
target_compile_definitions(Zagreus PRIVATE ZAGREUS_VERSION_MINOR="${ZAGREUS_VERSION_MINOR}")

if (ENABLE_TESTS)
file(GLOB tests_folder "tests/*.h" "tests/*.cpp")

# Remove main from inc_zagreus
list(REMOVE_ITEM inc_zagreus "${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp")

add_executable(zagreus-tests ${tests_folder} ${inc_senjo} ${inc_zagreus})
target_link_libraries(zagreus-tests PRIVATE Catch2::Catch2WithMain)

target_compile_definitions(zagreus-tests PRIVATE ZAGREUS_VERSION_MAJOR="${ZAGREUS_VERSION_MAJOR}")
target_compile_definitions(zagreus-tests PRIVATE ZAGREUS_VERSION_MINOR="${ZAGREUS_VERSION_MINOR}")

list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/extras)
include(CTest)
include(Catch)
catch_discover_tests(zagreus-tests)
endif ()
# TODO: re-enable
#if (ENABLE_TESTS)
# file(GLOB tests_folder "tests/*.h" "tests/*.cpp")
#
# # Remove main from inc_zagreus
# list(REMOVE_ITEM inc_zagreus "${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp")
#
# add_executable(zagreus-tests ${tests_folder} ${inc_zagreus})
# target_link_libraries(zagreus-tests PRIVATE Catch2::Catch2WithMain)
#
# target_compile_definitions(zagreus-tests PRIVATE ZAGREUS_VERSION_MAJOR="${ZAGREUS_VERSION_MAJOR}")
# target_compile_definitions(zagreus-tests PRIVATE ZAGREUS_VERSION_MINOR="${ZAGREUS_VERSION_MINOR}")
#
# list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/extras)
# include(CTest)
# include(Catch)
# catch_discover_tests(zagreus-tests)
#endif ()
6 changes: 0 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,6 @@ cmake --build .

# Credits
Thanks to:

- [zd3nik](https://github.com/zd3nik) for the [Senjo UCI Adapter](https://github.com/zd3nik/SenjoUCIAdapter), which I
slightly modified
- [AndyGrant](https://github.com/AndyGrant) for the easy to use and open
source [OpenBench Testing Framework](https://github.com/AndyGrant/OpenBench), making testing my engine SO much easier
and allowing you to distribute test over multiple devices (I use a private instance of OpenBench)
Expand All @@ -107,6 +104,3 @@ GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with Zagreus. If not, see <https://www.gnu.org/licenses/>.

This project uses the [Senjo UCI Adapter](https://github.com/zd3nik/SenjoUCIAdapter) by zd3nik which is licensed under
the MIT license. All files from the Senjo UCI Adapter retain their original copyright and license notices.
Loading