New engine: paulchen332

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

Moderators: hgm, Rebel, chrisw

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

New engine: paulchen332

Post by Philipp Lenk »

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: 2487
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: New engine: paulchen332

Post by Ras »

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 1:55 pm
Full name: Philipp Lenk

Re: New engine: paulchen332

Post by Philipp Lenk »

Ras wrote: Wed Nov 25, 2020 10: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 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 :D
connor_mcmonigle
Posts: 530
Joined: Sun Sep 06, 2020 4:40 am
Full name: Connor McMonigle

Re: New engine: paulchen332

Post by connor_mcmonigle »

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)
Philipp Lenk
Posts: 4
Joined: Wed Nov 25, 2020 1:55 pm
Full name: Philipp Lenk

Re: New engine: paulchen332

Post by Philipp Lenk »

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! :D (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)
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: 640
Joined: Sat Jun 08, 2013 10:07 am
Location: France
Full name: Roland Chastain

Re: New engine: paulchen332

Post by Roland Chastain »

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: 4467
Joined: Fri Apr 21, 2006 4:19 pm
Location: IASI - the historical capital of MOLDOVA
Full name: SilvianR

Re: New engine: paulchen332

Post by Sylwy »

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 1:55 pm
Full name: Philipp Lenk

Re: New engine: paulchen332

Post by Philipp Lenk »

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?

Here is an uglified version of the file in question that should work around the bug
Sylwy wrote: Thu Nov 26, 2020 8: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: 640
Joined: Sat Jun 08, 2013 10:07 am
Location: France
Full name: Roland Chastain

Re: New engine: paulchen332

Post by Roland Chastain »

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.

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 9: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: 135
Joined: Tue Mar 05, 2019 3:43 pm
Full name: Archimedes

Re: New engine: paulchen332

Post by Archimedes »

Paulchen332 needs android builds. :)

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