OliverBr wrote: ↑Tue Nov 17, 2020 8:26 am
I have tried it after a "git pull" and got an (non-mac-related) error:
An extra command is needed to download the missing files. It's explained in BUILD.md:
Syzygy support and some of the Python scripts in the tools subdirectory rely on imported submodules. So if building Arasan from a git repository, issue the following command within your git directory to pull these dependencies into your your source tree:
OliverBr wrote: ↑Tue Nov 17, 2020 1:39 am
Congratulations!
My tests show that Monchester is stable. It still may run out of time on very fast time controls, but rarely.
Monchester didn't run out of time in the following is a 40/15 h2h tournament against Hippocampe:
...
Thank you for retesting, @Oliver! Lots of interesting system and engine-level questions and discussions are raising from your experiments, I will keep following this thread with great interest and will share if something noteworthy arises from my own fiddlings.
1) Open source (most are on git anyway)
C/C++ only?
2) Easy compile with make/cmake on both, Linux and MacOSX, with g++ and clang, telling their name on init.
As per uci protocol, the name should be told by the id name feedback after issuing uci command. Is this fine?
3) Complete implementation of either UCI or CECP protocol
UCI_Analyze can be dropped? What else can be dropped?
Is criterial accepting all cutechess-cli tournament related commands?
4) Stable over thousands of games
What does this mean? No errors on cutechess-cli ?
What time controls should be supported?
5) Bugfree in terms of timeouts and illegal moves and draw repitions.
CECP does accepts and returns commands such as result/draw/... uci relies on user-inforterface/cutechess/ to tell game is finished
What is expected after go command in case of draw or (stale)mate? Nullmove or nothing?
My engine version version 2.x does not yet detect three-fold repetition, but as it is a uci engine, game gets scored as draw when running through cutechess. A CECP engine should return draw score however.... so how to accept uci engine on this list based on this?
In case of timeout, reacting to stop command should be enough or not?
Just to let you know I added a makefile for linux. You can download latest version from github. There is a makefile in the src folder.
Let me know if you find any issues.
Zevra 2.1.2 is not stable due to a race condition, unfortunately. You'll only see this however with enough games in parallel to load your CPU to 100%. Zevra has a risky design where it starts a search thread and discards UCI input like "go" while search is active instead of buffering input other than isready/stop/quit for later processing. However, after giving its bestmove, the associated status variable may not be propagated in time to the input thread at full CPU load. In this case, Zevra just misses the command. Tested under Linux with c-chess-cli where Zevra becomes unresponsive after 10-30 games on my machine.
Fixed in v2.2
I recently returned to development and today I finally released version v2.2. Thanks for the help!