List of bugfree, opensource Linux and MacOSX engines

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

Moderator: Ras

User avatar
hgm
Posts: 28354
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: List of bugfree, opensource Linux and MacOSX engines

Post by hgm »

I pushed a patch to my on-line repository for KingSlayer, which should fix the promotion issue.

It turned out this was 'reproducibly broken'; KingSlayer would never be able to make his own moves after getting a promotion move as input. Apparently I had broken the code when implementing under-promotion, and never sufficiently tested that. The KingSlayer version I have on Windows, which I am always using in the on-line blitz tournaments, was from before this patch (and cannot handle under-promotion).

I had already fixed the same problem earlier, in the KingSlayer derivative that plays Chess with Different Armies; I now ported that solution to the master branch.
unserializable
Posts: 65
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: List of bugfree, opensource Linux and MacOSX engines

Post by unserializable »

OliverBr wrote: Mon Nov 09, 2020 1:01 am Manchester is a most interesting engine and I hadn't tested it before: It compiles easily on both systems and is very stable. But there is still a issue:
It cannot handle fast time controls. It loses many times on a 40/25 time control (25 seconds for 40 moves). It would make it into the second list (candidates with one minor flaw).
Hey Oliver!

I did some tests as well and my conclusion was that despite the README.md instructions on how to create release build, Monchester source code packaging was not ideal, as default make target created slow debug build. So I did a non-functional packaging change where release build is the default when just compiling with make without any parameters. I think just make without release target is what you must have done in your tests as well, because otherwise after my own tests I cannot explain timing out at 25s/40mvs on juicy CPU like 7502P, even when all 32 cores are completely loaded. The source code package with just the Makefile change is at https://github.com/unserializable/monch ... 0.1.tar.gz -- could you please retest it and let me know whether it passes 25s/40mvs?

I had some interesting playtesting results against some of the engines that you already tested (Minnow, Prophet4), these results are also listed at https://github.com/unserializable/monchester/issues/1, I will recount them here for easy reference:

Tests

Did some Monchester tests on Ryzen 2700X, including even faster time control (10s/40mvs) to account for CPU clock differences between AMD EPYC 7502P 32-Core where you are running tests.

25s/40mvs

Against Minnow (https://github.com/tm512/minnow, revision dfe1461, 200 games, 25s/40mvs), Monchester did not forfeit any games on time, but Minnow did, 42 games out of 200.

Against OliThink 4.1.3 (https://github.com/olithink/olithink4), compiled with gcc -O3 olithink413.c -o olithink413, (its distribution did not include Makefile), it played 1000 games, 25s/40mvs. There were no time forfeits for either side.

10s/40mvs

Against Rustic 0.1.0-alpha (not a C/C++ engine, https://github.com/mvanthoor/rustic, code of 9th November 2020, 200 games 10s/40mvs) these games did not include in any time forfeits for either engine (Rustic lost some games due to illegal moves reported by Polyglot, it was running in UCI mode, direct CECP not supported by it).

Against Prophet4 (https://github.com/jswaff/prophet4, revision 530f5a9) -- (5000 games, 10s/40mvs) tests were interrupted after game 1159, where Prophet4 refused to move (crashed) and thus forfeited on time. Before that Prophet4 crash, none of the engines had forfeited any games on time. I tried to recreate Prophet4 crash, but it does not reproduce by just restarting problem-game from its crash point.

As Roland did, I would also encourage to include some weak but stable engine in the playtesting, the newly fixed flawless and super-fast N.E.G. 1.3b could be the best option for this now -- to uncover weird promotion bugs of stronger engines, which would occur much more rarely in games between evenly matched opponents (once upon a time Monchester had a promotion bug on zero-square a1, which I only discovered when playing it against N.E.G.).

Thank you and hope you continue this interesting testing, it seems to have positive impact already on several engines, I see that soon I shall be able to match Monchester against stable version of Hippocampe :)
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester
User avatar
hgm
Posts: 28354
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: List of bugfree, opensource Linux and MacOSX engines

Post by hgm »

OliverBr wrote: Sun Nov 15, 2020 10:33 am This one hurts: Wyldchess 1.5 crashed after having played over 100.000s games altogether. (Same happened to Murka3 64 once, btw).
So it's a very very rare bug. I hope the author Michael B. can fix this.

Code: Select all

Terminating process of engine WyldChess(34266)
Finished game 18982 (WyldChess vs OliThink 5.9.1): 0-1 {White's connection stalls}
Are you sure that this is really a bug? From the experience with Fairy-Max it seems that CuteChess also gives this error message on time forfeits. Many WB engines do not process input while thinking. And it seems CuteChess uses this error message when there is no immediate response to a 'ping' it sends to probe whether an engine that has forfeited on time is still alive. So this message doesn't imply the engine process terminated, or even that the engine was hanging; just that it was still thinking while its flag fell.

Time forfeits can happen to any engine through no fault of their own. You are not running these tests on a bare machine; there is an OS that can decide to do who-knows-what at any time it pleases. If an engine gets its hash-table memory swapped to disk, it can take a long time to recover; every node will require a disk read, and if it checks time every so many thousands of nodes, it can be way too late in discovering that it had been running only at 50 nodes per second since the last time check. Chances for this happening are very small, but they are non-zero. I remember Joker once had a forfeit in a bullet game in the Ridderkerk tourneys. I got the log, and it showed that for the last move it had used 50 sec according to the GUI, while its own Thinking Output (which reported CPU time used) said only 1 sec. Apparently the OS had paused it for 49 sec, for unknown reasons.

So perhaps it is unreasonable to put the threshold for forfeits at an absolute zero. It would mean that eventually every engine will get disqualified.
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: List of bugfree, opensource Linux and MacOSX engines

Post by Guenther »

hgm wrote: Sun Nov 15, 2020 11:23 am I pushed a patch to my on-line repository for KingSlayer, which should fix the promotion issue.

It turned out this was 'reproducibly broken'; KingSlayer would never be able to make his own moves after getting a promotion move as input. Apparently I had broken the code when implementing under-promotion, and never sufficiently tested that. The KingSlayer version I have on Windows, which I am always using in the on-line blitz tournaments, was from before this patch (and cannot handle under-promotion).

I had already fixed the same problem earlier, in the KingSlayer derivative that plays Chess with Different Armies; I now ported that solution to the master branch.
Incredible, despite having a win KingSlayer binary in my engines list (no idea who compiled it) and in my WB.ini
it never made it into the XB/UCI chronology (until now).

It seems it was 'released' during my hiatus and was not mentioned as an extra entry in the CCW,
while Leos list already had expired.

The binary I have here calls itself 150930 so I guess this must be the date of compilation or last source change at that time,
even if the timestamp is from 2015-10-02, probably the date you set it up in your repo?

I will compile a new win binary from current master and update my chronology. Thanks.

Any idea about the playing strength compared to other programs?

Code: Select all

xboard
protover 2
feature ping=1 setboard=1 colors=0 usermove=1 memory=1 debug=1 reuse=0 sigint=0 sigterm=0 myname="KingSlayer 150930"
feature option="Resign -check 0"
feature option="Contempt -spin 0 -200 200"
feature option="Evaluate piece mobility -check 0"
feature option="Evaluate trapped pieces -check 0"
feature option="Evaluate drawish material -check 0"
feature option="Evaluate specific endings -check 0"
feature option="Evaluate pawn structure -check 0"
feature option="Evaluate king shelter -check 0"
feature option="Evaluate king seige -check 0"
feature done=1
new
time 10000
go
1 10 0 2 b1a3
1 34 0 3 b1c3
2 0 0 42 b1c3 b8c6
3 27 0 199 b1c3 b8c6 g1f3
4 0 0 388 b1c3 b8c6 g1f3 g8f6
5 7 1 3702 b1c3 b8c6 g1f3 g8f6 d2d4
6 0 1 8574 b1c3 b8c6 g1f3 g8f6 d2d4 a7a5
7 25 14 61264 b1c3 b8c6 g1f3 d7d5 d2d4 c8f5 c1f4
8 0 32 145504 b1c3 b8c6 g1f3 d7d5 d2d4 c8f5 c1f4 g8f6
9 4 42 186420 b1c3 b8c6 g1f3 d7d5 d2d4 g8f6 c1f4
10 0 240 1194500 b1c3 d7d5 g1f3 b8c6 d2d4
10 2 318 1569036 g1f3 b8c6 e2e4 g8f6 b1c3
11 2 463 2296078 g1f3 d7d5 d2d4 b8c6 c1f4 c8f5 b1c3 g8f6 a2a4 f6e4 f6d5
12 0 956 4774214 g1f3 d7d5 d2d4 b8c6 c1f4 c8f5 b1c3 g8f6 a2a4 a7a5 h2h4
https://rwbc-chess.de

[Trolls n'existent pas...]
User avatar
hgm
Posts: 28354
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: List of bugfree, opensource Linux and MacOSX engines

Post by hgm »

You were actually present at its inception. Originally I wanted to call the engine 'Simple', but you pointed out that this name was already taken. The project was triggered by this challenge posed by Henk on August 8, 2015:
Henk wrote: Sat Aug 08, 2015 1:02 pm Do you think you could write a super simple engine that beats Fairy-Max easily ?


Nodes per second of Fairy-Max is at least five times more than Skipper2.

Skipper uses killer moves and non captures are sorted. Also King safety is more complicated.

At this moment Skipper searches two plies less deep than Fairy-Max. For instance it doesn't reduce depth at all when in check.
In the same thread 9 days later (August 17) I reported having written a first working version. I put it in my on-line repository August 26; I guess that counts as the release date. On August 30 you pointed out that the name Simple was already taken, and I coined the name KingSlayer as an alternative.

I have always seen it more as a heavily commented demo code than as something to actually run; the evaluation was for instance never tuned. It should be somewhere between micro-Max and Joker, say 2100 Elo.
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: List of bugfree, opensource Linux and MacOSX engines

Post by Guenther »

hgm wrote: Sun Nov 15, 2020 1:47 pm You were actually present at its inception. Originally I wanted to call the engine 'Simple', but you pointed out that this name was already taken. The project was triggered by this challenge posed by Henk on August 8, 2015:
Henk wrote: Sat Aug 08, 2015 1:02 pm Do you think you could write a super simple engine that beats Fairy-Max easily ?


Nodes per second of Fairy-Max is at least five times more than Skipper2.

Skipper uses killer moves and non captures are sorted. Also King safety is more complicated.

At this moment Skipper searches two plies less deep than Fairy-Max. For instance it doesn't reduce depth at all when in check.
In the same thread 9 days later (August 17) I reported having written a first working version. I put it in my on-line repository August 26; I guess that counts as the release date. On August 30 you pointed out that the name Simple was already taken, and I coined the name KingSlayer as an alternative.

I have always seen it more as a heavily commented demo code than as something to actually run; the evaluation was for instance never tuned.
Thanks for reminding me all of this :)
I still was in hiatus (may be I posted a couple of times in 2015 though) and started working again on the XB/UCI chronology in April 2016.
It was not updated between 2011-2015.

Usually I add the date of a win binary (sorry) release/appearance (may be I should add that info to my page too), or the date of discovery in the
past, because a not (at least somewhere) announced 'release' has not much meaning, if the thing is completely unknown to the rest of the world.
This happened mostly in the very past though, late 90ies/early 2000s and I took over this habits from Leo and predecessors.
I can still add the desired release date though, but I cannot rename the first appeared win binary ofc.

It seems the compilation I have must be from Tony Mokonen, but the download link is dead (also in wayback).

Edit: The simplified (left some columns out for posting here) entry looks like this now

Code: Select all

Name       N-Pre/Var  ?     Vers. FR    Y-M-D FR      Vers. LR YM-LR    Age-FR  RC  Src  Type  MP  EGT Prot  Author L.N.  Author F.N.  Web/Download                                                    CC3
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
KingSlayer Simple     free  150930 TM   2015-08-30    201115   2020-11  5,21    C1  yes  CPU   -   -   XB    Muller       Harm Geert   http://hgm.nubati.net/cgi-bin/gitweb.cgi?p=simple.git;a=summary NLD
                                                                                                                                       https://rwbc-chess.de/download.htm
Last edited by Guenther on Sun Nov 15, 2020 2:22 pm, edited 2 times in total.
https://rwbc-chess.de

[Trolls n'existent pas...]
User avatar
hgm
Posts: 28354
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: List of bugfree, opensource Linux and MacOSX engines

Post by hgm »

I might indeed have never released a binary myself.

I did officially release a derivative that plays Chess with Different Armies (KingSlayer-CwDA), though: http://talkchess.com/forum3/viewtopic.p ... 1&p=841924 . It also can play orthodox Chess (as FIDE is one of the implemented armies).

Later I also made a derivative to play Musketeer Chess (KingSlayer-Aramis). The Windows binary of that is included in the WinBoard-AA package (musky.exe).
User avatar
Roland Chastain
Posts: 680
Joined: Sat Jun 08, 2013 10:07 am
Location: France
Full name: Roland Chastain

Re: Hippocampe 0.4.2.0.1 (updated)

Post by Roland Chastain »

Guenther wrote: Sun Nov 15, 2020 11:01 am Would you mind to add my WIN compile of Hippocampe in your current or future download place too?
I don't think it would make sense to make it available at my download site, when you did the code changes
and already have other OS compiles. They shouldn't be splattered over various download sites.
Thank you Günther. I created a repository on GitHub and made a release with your binary.
https://github.com/rchastain/hippocampe
Qui trop embrasse mal étreint.
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Hippocampe 0.4.2.0.1 (updated)

Post by Guenther »

Roland Chastain wrote: Sun Nov 15, 2020 2:20 pm
Guenther wrote: Sun Nov 15, 2020 11:01 am Would you mind to add my WIN compile of Hippocampe in your current or future download place too?
I don't think it would make sense to make it available at my download site, when you did the code changes
and already have other OS compiles. They shouldn't be splattered over various download sites.
Thank you Günther. I created a repository on GitHub and made a release with your binary.
https://github.com/rchastain/hippocampe
Great Roland! I removed the googledrive link and added the new repo to the Hippocampe entry.
https://rwbc-chess.de

[Trolls n'existent pas...]
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: List of bugfree, opensource Linux and MacOSX engines

Post by Guenther »

hgm wrote: Sun Nov 15, 2020 2:17 pm I might indeed have never released a binary myself.

I did officially release a derivative that plays Chess with Different Armies (KingSlayer-CwDA), though: http://talkchess.com/forum3/viewtopic.p ... 1&p=841924 . It also can play orthodox Chess (as FIDE is one of the implemented armies).

Later I also made a derivative to play Musketeer Chess (KingSlayer-Aramis). The Windows binary of that is included in the WinBoard-AA package (musky.exe).
HG I have edited my previous post slightly.
Meanwhile I compiled the newer version of KingSlayer too, do you mind, if I would rename the internal version number of 0.00?

BTW it is really very well commented, but you already said it was meant as a demo engine for starters.

Code: Select all

xboard
protover 2
feature ping=1 setboard=1 colors=0 usermove=1 memory=1 debug=1 reuse=0 sigint=0 sigterm=0 myname="KingSlayer 0.00"
feature option="Resign -check 0"
feature option="Contempt -spin 0 -200 200"
feature option="Evaluate piece mobility -check 0"
feature option="Evaluate trapped pieces -check 0"
feature option="Evaluate drawish material -check 0"
feature option="Evaluate specific endings -check 0"
feature option="Evaluate pawn structure -check 0"
feature option="Evaluate king shelter -check 0"
feature option="Evaluate king seige -check 0"
feature done=1
new
time 10000
go
1 10 0 2 b1a3
1 34 0 3 b1c3
2 0 1 42 b1c3 b8c6
3 27 1 200 b1c3 b8c6 g1f3
4 0 1 395 b1c3 b8c6 g1f3 g8f6
5 7 3 3822 b1c3 b8c6 g1f3 g8f6 d2d4
6 0 4 9050 b1c3 b8c6 g1f3 g8f6 d2d4 a7a5
7 25 12 65843 b1c3 b8c6 g1f3 d7d5 d2d4 c8f5 c1f4
8 0 26 161855 b1c3 b8c6 g1f3 d7d5 d2d4 c8f5 c1f4 g8f6
9 4 32 206831 b1c3 b8c6 g1f3 d7d5 d2d4 g8f6 c1f4
10 0 140 1110327 b1c3 b8c6 g1f3 d7d5 d2d4 g8f6 c1f4 c8f5 a2a4 a7a5
10 1 252 1985469 c2c4 b8c6 g1f3 f7f5
11 4 393 3109575 c2c4 b8c6 g1f3 e7e5 b1c3 g8f6 d2d3 f8d6 c1g5
12 0 656 5250088 c2c4 b8c6 g1f3 e7e5 b1c3 g8f6 d2d3 f8e7
https://rwbc-chess.de

[Trolls n'existent pas...]