cutechess-cli 0.2.2 released

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

Moderators: hgm, Rebel, chrisw

User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

cutechess-cli 0.2.2 released

Post by ilari »

A long time passed without a release, so I decided to make one right now.

What's new:
* The same command line option can't accidentally be passed twice.
* Accept or reject Xboard engines' features immediately. Some engines (eg. Matacz) fail to initialize properly without this feature.
* Handle cases where an engine fails to start or disconnects almost immediately.
* Option "--protocols" for displaying a list of supported chess protocols.
* Option "--variants" for displaying a list of supported variants.
* Support Atomic, Crazyhouse and Losers variants.
* A castling bugfix for Chess960 and Capablanca random chess.
* JSON format for storing engine configurations.
* Handle non-responding engines better. If an engine runs out of time and then stops responding, it will be properly terminated.
* Games where an engine loses on time do not cause a freeze anymore.

The README file in the packages is up-to-date, so I won't bother documenting the usage here. The engine configuration format isn't documented however, but it's pretty simple to create/edit. The config file should be named "engines.json", and it can be placed in the same directory as cutechess-cli. The format looks like this:

Code: Select all

[
   {
      "command":"fruit",
      "name":"Fruit-2.1",
      "protocol":"uci",
      "workingDirectory":""
   },
   {
      "command":"crafty",
      "name":"Crafty-22.10",
      "protocol":"xboard",
      "workingDirectory":""
   },
   {
      "command":"wine KKF.exe",
      "name":"KKF-2.6.6",
      "protocol":"xboard",
      "workingDirectory":"/home/ilari/chess/KKF"
   },
   {
      "command":"wine \"Rybka v2.2n2.mp.w32.exe\"",
      "name":"Rybka-2.2n2",
      "protocol":"uci",
      "workingDirectory":"/home/ilari/chess/Rybka22n2"
   }
]
That should be self-explanatory. Just remember to escape special characters like double quotes with a backslash (see my config section for Rybka).

I'm afraid this version hasn't been extensively tested, so please let me know if it doesn't run, crashes, freezes, does something unexpected, etc. I'm especially nervous about the OSX package. It works on my machine, but that doesn't guarantee that it'll work on all Macs.

Sources (cutechess-lib + cutechess-gui + cutechess-cli): http://repo.or.cz/w/sloppygui.git
Binaries:
- Linux 32-bit: http://koti.mbnet.fi/~ilaripih/bin/cute ... x32.tar.gz
- Linux 64-bit: http://koti.mbnet.fi/~ilaripih/bin/cute ... x64.tar.gz
- Mac OSX (Leopard or newer): http://koti.mbnet.fi/~ilaripih/bin/cute ... li-osx.zip
- Windows 32-bit: http://koti.mbnet.fi/~ilaripih/bin/cute ... -win32.zip
schlucke
Posts: 58
Joined: Thu Apr 09, 2009 1:38 pm

Re: cutechess-cli 0.2.2 released

Post by schlucke »

Thank you very much!
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: cutechess-cli 0.2.2 released

Post by Daniel Shawul »

Thanks for the release Illari.
Is the eval-tuning feature discussed here some time ago up in your todo list. Just a reminder that some people are waiting eagerly :)
I will add support for the "options" feature of winboard and test it in cutechess-cli.
cheers
Daniel
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: cutechess-cli 0.2.2 released

Post by ilari »

Daniel Shawul wrote:Thanks for the release Illari.
Is the eval-tuning feature discussed here some time ago up in your todo list. Just a reminder that some people are waiting eagerly :)
Daniel
Haven't even started yet, but it's on my todo list - which is long. We'll first add tournament support, new unit tests etc.
I will add support for the "options" feature of winboard and test it in cutechess-cli.
That doesn't work yet, it's such a new addition to the Winboard protocol. It will be supported in the next release.
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: cutechess-cli 0.2.2 released

Post by Daniel Shawul »

Sorry, somehow I confused the "Option" command you added for that.
Anyway since I have tourney manager via a script, I may add the "options" feature myself and avoid manual tuning.
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: cutechess-cli 0.2.2 released

Post by ilari »

Daniel Shawul wrote:Sorry, somehow I confused the "Option" command you added for that.
Anyway since I have tourney manager via a script, I may add the "options" feature myself and avoid manual tuning.
The confusion is understandable. Currently only "memory", "cores" and "egtpath" options are supported (eg. 'option.cores=2', or 'option."egtpath scorpio"=C:\bitbases').
Ralf Schaefer

Re: cutechess-cli 0.2.2 released

Post by Ralf Schaefer »

Hello,

works fine after a short test. Also concurrency 4 worked without problems on my quad core.

the engines.json on windows needs a double black slash so it looks like

Code: Select all

[ 
  { 
      "command":"n2_x64.exe", 
      "name":"N2_T05", 
      "protocol":"uci", 
      "workingDirectory":"C:\\Users\\Ralf\\Schach\\Engines\\n2\\test\\T05" 
   }, 
   { 
      "command":"fruit_21.exe", 
      "name":"Fruit-2.1", 
      "protocol":"uci", 
      "workingDirectory":"C:\\Users\\Ralf\\Schach\\Engines\\Fruit\\Fruit21" 
   }, 
   { 
      "command":"Colossus2008b.exe", 
      "name":"Colossus2008b", 
      "protocol":"uci", 
      "workingDirectory":"C:\\Users\\Ralf\\Schach\\Engines\\Colossus\\Colossus2008b" 
   }, 
   { 
      "command":"crafty-232-64.exe", 
      "name":"Crafty-23.2", 
      "protocol":"xboard", 
      "workingDirectory":"C:\\Users\\Ralf\\Schach\\Engines\\Crafty\\Crafty_23_2" 
   }
] 

Thanks for providing

Ralf
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: cutechess-cli 0.2.2 released

Post by ilari »

Ralf Schaefer wrote:Hello,

works fine after a short test. Also concurrency 4 worked without problems on my quad core.
Glad to hear that, the Windows version is always the one I test the least.
the engines.json on windows needs a double black slash so it looks like...
Good point, JSON strings use backslash escapes for some special characters, eg:
" = double quotes
\\ = backslash
\n = line break
garybelton
Posts: 175
Joined: Fri Dec 11, 2009 9:08 pm

Re: cutechess-cli 0.2.2 released

Post by garybelton »

Thanks for cutechess, your new version works really well on Windows.

I use it now mainly really for a purpose not intended, for book testing and improving, I run various matches at quite a long time control (60:120+1) and some of the engines are on remote.

I would really like to be able to change the ping timeout value to something larger like 60 secs (I looked into the code and I think it's set at 10 secs, but that is from memory from a while ago). I wonder if a change could be made to allow this parm to be set via json conf file or if someone kind could make a compile with this timeout at 60 secs please?

I have so far failed to compile it due to the pre-reqs but I am not an expert in compiling things.

The reason for the request is that sometimes the remote engines time out with messages like:
Engine xxx failed to respond to ping
Warning: EngineProcess: pipe reader was terminated
The remote system is still active and available however, it's just that the network is really slow.

Yours hopefully.
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: cutechess-cli 0.2.2 released

Post by ilari »

garybelton wrote:I would really like to be able to change the ping timeout value to something larger like 60 secs (I looked into the code and I think it's set at 10 secs, but that is from memory from a while ago). I wonder if a change could be made to allow this parm to be set via json conf file or if someone kind could make a compile with this timeout at 60 secs please?
Sure, it would be easy increase the timeout value or make it configurable. But if you have that much lag in your connection, you're going to have other problems too, like matches taking way longer than they should, engines losing on time, etc. It's usually better to run remote matches than local matches with remote engines.

Anyway, I can increase the timeout to 60 seconds.