New engine: paulchen332

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Dann Corbit, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
Philipp Lenk
Posts: 4
Joined: Wed Nov 25, 2020 12:55 pm
Full name: Philipp Lenk

New engine: paulchen332

Post by Philipp Lenk » Wed Nov 25, 2020 8:49 pm

Hi everyone,

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

Thank you very much for your attention

Ras
Posts: 1786
Joined: Tue Aug 30, 2016 6:19 pm
Full name: Rasmus Althoff
Contact:

Re: New engine: paulchen332

Post by Ras » Wed Nov 25, 2020 9:04 pm

Congrats! :D How strong is 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.
Rasmus Althoff
https://www.ct800.net

Philipp Lenk
Posts: 4
Joined: Wed Nov 25, 2020 12:55 pm
Full name: Philipp Lenk

Re: New engine: paulchen332

Post by Philipp Lenk » Wed Nov 25, 2020 9:10 pm

Ras wrote:
Wed Nov 25, 2020 9:04 pm
Congrats! :D How strong is it?
Thanks ;-) I don't really know for sure. Initial, more reliable testing than my own seems to indicate >=2500 Elo
Ras wrote:
Wed Nov 25, 2020 9: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 :D

connor_mcmonigle
Posts: 125
Joined: Sun Sep 06, 2020 2:40 am
Full name: Connor McMonigle

Re: New engine: paulchen332

Post by connor_mcmonigle » Thu Nov 26, 2020 7:37 am

Philipp Lenk wrote:
Wed Nov 25, 2020 8: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)

Philipp Lenk
Posts: 4
Joined: Wed Nov 25, 2020 12:55 pm
Full name: Philipp Lenk

Re: New engine: paulchen332

Post by Philipp Lenk » Thu Nov 26, 2020 1:39 pm

connor_mcmonigle wrote:
Thu Nov 26, 2020 7: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! :D (Seer is incredibly impressive work, too!)
connor_mcmonigle wrote:
Thu Nov 26, 2020 7:37 am
(I particularly like your "fixed_capacity_vector". I've long wished for something similar to be introduced into the standard)
You are in luck, some wonderful person is apparently working on that ;-)
And there is - of course - a boost version as well.

Feel free to use, abuse and improve my code as you see fit. I'd be honored.

User avatar
Roland Chastain
Posts: 458
Joined: Sat Jun 08, 2013 8:07 am
Location: France
Full name: Roland Chastain
Contact:

Re: New engine: paulchen332

Post by Roland Chastain » Thu Nov 26, 2020 6:44 pm

Hello!

When I try to build the engine (on Linux 64), I get the following error message:

Code: Select all

[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)]$ 
Qui trop embrasse mal étreint.

User avatar
Sylwy
Posts: 3572
Joined: Fri Apr 21, 2006 2:19 pm
Location: IASI (Romania) - the historical capital of MOLDOVA

Re: New engine: paulchen332

Post by Sylwy » Thu Nov 26, 2020 7:56 pm

A very promising chess engine. In test vs. Pharaon 3.5.1 (2603 Elo CCRL Blitz).

Image

Image

Philipp Lenk
Posts: 4
Joined: Wed Nov 25, 2020 12:55 pm
Full name: Philipp Lenk

Re: New engine: paulchen332

Post by Philipp Lenk » Thu Nov 26, 2020 8:45 pm

Roland Chastain wrote:
Thu Nov 26, 2020 6: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?

Here is an uglified version of the file in question that should work around the bug
Sylwy wrote:
Thu Nov 26, 2020 7:56 pm
A very promising chess engine. In test vs. Pharaon 3.5.1 (2603 Elo CCRL Blitz).
Thank you very much for testing. I hope it will manage to live up to your expectations ;-)

User avatar
Roland Chastain
Posts: 458
Joined: Sat Jun 08, 2013 8:07 am
Location: France
Full name: Roland Chastain
Contact:

Re: New engine: paulchen332

Post by Roland Chastain » Fri Nov 27, 2020 5:30 am

Philipp Lenk wrote:
Thu Nov 26, 2020 8: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.

Code: Select all

[roland@localhost paulchen332 (main)]$ gcc --version
gcc (Mageia 8.4.0-1.mga7) 8.4.0
Philipp Lenk wrote:
Thu Nov 26, 2020 8:45 pm
Here is an uglified version of the file in question that should work around the bug.
Indeed, with this version of the file I can compile the program. Thank you.
Qui trop embrasse mal étreint.

Archimedes
Posts: 44
Joined: Tue Mar 05, 2019 2:43 pm
Full name: Archimedes

Re: New engine: paulchen332

Post by Archimedes » Fri Dec 04, 2020 3:28 pm

Paulchen332 needs android builds. :)

Paulchen332 0.1.1:
https://app.box.com/s/5ld1q8nnuiygahjtzg7wd7brndruu4su

Post Reply