I would like to introduce to a simple UCI compatible engine I have developed and released recently.
It is open source(BSD-2-Clause) and the code and some prebuilt binaries are available on github
I have also written a small blog post about it, which you can read here, if you feel so inclined.
It is an original work, not a derivative. I have - of course - taken inspiration and ideas from the chessprogramming wiki and a multitude of open source engines, for all of which I am most grateful. Not a single line of code is copied so.
This necessarily implies the code is not the most beautiful you have ever seen and is undoubtedly riddled with a multitude of bugs, misunderstandings and inefficiencies
I nonetheless hope some of you can get a minor amount of joy out of it
One small suggestion: it seems that your node count refers only to the additional nodes per main iteration depth. Usually, this is the total node count.
Ras wrote: ↑Wed Nov 25, 2020 10:04 pm
One small suggestion: it seems that your node count refers only to the additional nodes per main iteration depth. Usually, this is the total node count.
Thank you for taking a look at it already! Good suggestion, being consistent with other engines in what I report is certainly worth that minor change. I will adjust it for my next release
Philipp Lenk wrote: ↑Wed Nov 25, 2020 9:49 pm
This necessarily implies the code is not the most beautiful you have ever seen and is undoubtedly riddled with a multitude of bugs, misunderstandings and inefficiencies
I can't speak to whether your code is riddled with "bugs, misunderstandings and inefficiencies" as you write, but it is certainly some of the most beautiful C++ I've ever seen Fantastic job and congrats on your first release!
(I particularly like your "fixed_capacity_vector". I've long wished for something similar to be introduced into the standard)
connor_mcmonigle wrote: ↑Thu Nov 26, 2020 8:37 am
I can't speak to whether your code is riddled with "bugs, misunderstandings and inefficiencies" as you write, but it is certainly some of the most beautiful C++ I've ever seen Fantastic job and congrats on your first release!
Thank you so much. That comment really made my day! (Seer is incredibly impressive work, too!)
connor_mcmonigle wrote: ↑Thu Nov 26, 2020 8:37 am
(I particularly like your "fixed_capacity_vector". I've long wished for something similar to be introduced into the standard)
[roland@localhost paulchen332 (main)]$ LC_ALL=C make
g++ -Wfatal-errors -std=c++17 -Wall -pedantic -Werror -O3 -march=native -ggdb -flto -Iinclude -Idep/ptl/include -Idep/pcl/include -c src/default_search_control.cpp -o src/default_search_control.o
In file included from include/philchess/chessboard.hpp:13,
from include/philchess/default_search_control.hpp:4,
from src/default_search_control.cpp:1:
dep/ptl/include/ptl/fixed_capacity_vector.hpp: In instantiation of 'constexpr void ptl::fixed_capacity_vector<T, CAPACITY>::push_back(ptl::fixed_capacity_vector<T, CAPACITY>::const_reference) [with T = philchess::move; long unsigned int CAPACITY = 64; ptl::fixed_capacity_vector<T, CAPACITY>::const_reference = const philchess::move&; ptl::fixed_capacity_vector<T, CAPACITY>::value_type = philchess::move]':
include/philchess/default_search_control.hpp:399:36: required from here
dep/ptl/include/ptl/fixed_capacity_vector.hpp:179:18: error: cannot call member function 'constexpr auto ptl::fixed_capacity_vector<T, CAPACITY>::size() const [with T = philchess::move; long unsigned int CAPACITY = 64]' without object
constexpr void push_back(const_reference value) noexcept(noexcept(storage_.construct_at(size(),value))) { storage_.construct_at(size(),value); ++storage_.used; }
^~~~~~~~~
compilation terminated due to -Wfatal-errors.
make: *** [Makefile:16: src/default_search_control.o] Error 1
[roland@localhost paulchen332 (main)]$
Roland Chastain wrote: ↑Thu Nov 26, 2020 7:44 pm
When I try to build the engine (on Linux 64), I get the following error message:
Thanks for having a look at my engine. May I ask which gcc version you are compiling with? This looks like a manifestation of this bug, which erroneously caused class members to be inaccessible in noexcept declarations. As such I assume your version is <=8?
Philipp Lenk wrote: ↑Thu Nov 26, 2020 9:45 pm
May I ask which gcc version you are compiling with? This looks like a manifestation of this bug, which erroneously caused class members to be inaccessible in noexcept declarations. As such I assume your version is <=8?
Thank you for your answer. Indeed, it's gcc version 8.