lucasart wrote:For the JSON file. Do you have an example of such a file, so I can figure out how to do them? And when you call cutechess-cli, how do you ask to use a JSON file ?
You might want to add a few examples of JSON files in the readme file
As of now only the engine configuration can be put into a JSON file (engines.json). So what you're asking for is not possible yet, but will be in the next version.
No, I wasn't asking for a new feature. Just wanted to know how to write a JSON file. Should it be called engines.json and be in the current directory ? Do you know where I can find an example of such a file ?
Ah, okay. Yes, the file should be called engines.json and should be placed in the current directory.
The file should obey JSON rules (http://www.json.org/). Probably the most important thing to remember is to escape special characters with a backslash. The file's contents should look like this:
You can use the engines.json file and command line options at the same time. That is to say, you can easily override any options from the config file with a command line option if you need to.
lucasart wrote:For the JSON file. Do you have an example of such a file, so I can figure out how to do them? And when you call cutechess-cli, how do you ask to use a JSON file ?
You might want to add a few examples of JSON files in the readme file
As of now only the engine configuration can be put into a JSON file (engines.json). So what you're asking for is not possible yet, but will be in the next version.
No, I wasn't asking for a new feature. Just wanted to know how to write a JSON file. Should it be called engines.json and be in the current directory ? Do you know where I can find an example of such a file ?
Ah, okay. Yes, the file should be called engines.json and should be placed in the current directory.
The file should obey JSON rules (http://www.json.org/). Probably the most important thing to remember is to escape special characters with a backslash. The file's contents should look like this:
You can use the engines.json file and command line options at the same time. That is to say, you can easily override any options from the config file with a command line option if you need to.
It seems that cutechess-cli 0.5 is causing certain engines to crash. For example Jazz 501 and Beowulf 2.4. Here's the debug output of a game where Beowulf 2.4 crashed:
lucas@megatron:~/Chess$ grep Beowulf ./dump.txt
46 >Beowulf 2.4(0): uci
63 >Beowulf 2.4(3): uci
63 <Beowulf 2.4(0): Could not Load Config File beowulf.cfg. Continuing...
63 <Beowulf 2.4(0): Welcome to Beowulf Version 2.4a!
63 <Beowulf 2.4(0): Could not find Opening Book book.dat!
63 <Beowulf 2.4(0): Could not find Personality File default.per. Continuing...
63 <Beowulf 2.4(0): Checking for Tablebase Files
63 <Beowulf 2.4(0): r n b q k b n r
63 <Beowulf 2.4(0): p p p p p p p p
63 <Beowulf 2.4(0): . . . . . . . .
63 <Beowulf 2.4(0): . . . . . . . .
63 <Beowulf 2.4(0): . . . . . . . .
63 <Beowulf 2.4(0): . . . . . . . .
63 <Beowulf 2.4(0): P P P P P P P P
63 <Beowulf 2.4(0): R N B Q K B N R
63 <Beowulf 2.4(0): [1]W > id name Beowulf v2.4a
63 <Beowulf 2.4(0): id author Colin Frayn
63 <Beowulf 2.4(0): uciok
63 >Beowulf 2.4(0): isready
63 <Beowulf 2.4(0): readyok
Started game 1 of 50 (Beowulf 2.4 vs DoubleCheck 2.3.1)
64 >Beowulf 2.4(0): ucinewgame
64 >Beowulf 2.4(0): position startpos
64 >Beowulf 2.4(0): position startpos moves e2e4
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 c1g5
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 c1g5 e7e6
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 c1g5 e7e6 d1d2
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 c1g5 e7e6 d1d2 a7a6
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 c1g5 e7e6 d1d2 a7a6 e1c1
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 c1g5 e7e6 d1d2 a7a6 e1c1 h7h6
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 c1g5 e7e6 d1d2 a7a6 e1c1 h7h6 g5e3
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 c1g5 e7e6 d1d2 a7a6 e1c1 h7h6 g5e3 f8e7
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 c1g5 e7e6 d1d2 a7a6 e1c1 h7h6 g5e3 f8e7 f2f4
64 >Beowulf 2.4(0): position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 c1g5 e7e6 d1d2 a7a6 e1c1 h7h6 g5e3 f8e7 f2f4 c8d7
64 >Beowulf 2.4(0): isready
64 <Beowulf 2.4(0): Error - Illegal Input!
64 <Beowulf 2.4(0): Error - Illegal Input!
64 <Beowulf 2.4(0): Error - Illegal Input!
64 <Beowulf 2.4(0): Error - Illegal Input!
65 <Beowulf 2.4(0): Error - Illegal Input!
65 <Beowulf 2.4(0): Error - Illegal Input!
65 <Beowulf 2.4(0): Error - Illegal Input!
65 <Beowulf 2.4(0): Error - Illegal Input!
65 <Beowulf 2.4(0): Error - Illegal Input!
65 <Beowulf 2.4(0): Error - Illegal Input!
65 <Beowulf 2.4(0): Error - Illegal Input!
65 <Beowulf 2.4(0): Error - Illegal Input!
65 <Beowulf 2.4(0): Error - Illegal Input!
65 <Beowulf 2.4(0): readyok
65 >Beowulf 2.4(0): go wtime 70000 btime 69999 winc 1000 binc 1000
65 <Beowulf 2.4(3): Could not Load Config File beowulf.cfg. Continuing...
65 <Beowulf 2.4(3): Welcome to Beowulf Version 2.4a!
66 <Beowulf 2.4(3): Could not find Opening Book book.dat!
66 <Beowulf 2.4(3): Could not find Personality File default.per. Continuing...
66 <Beowulf 2.4(3): Checking for Tablebase Files
66 <Beowulf 2.4(3): r n b q k b n r
66 <Beowulf 2.4(3): p p p p p p p p
66 <Beowulf 2.4(3): . . . . . . . .
66 <Beowulf 2.4(3): . . . . . . . .
66 <Beowulf 2.4(3): . . . . . . . .
66 <Beowulf 2.4(3): . . . . . . . .
66 <Beowulf 2.4(3): P P P P P P P P
66 <Beowulf 2.4(3): R N B Q K B N R
66 <Beowulf 2.4(3): [1]W > id name Beowulf v2.4a
66 <Beowulf 2.4(3): id author Colin Frayn
66 <Beowulf 2.4(3): uciok
66 >Beowulf 2.4(3): isready
66 <Beowulf 2.4(3): readyok
Started game 2 of 50 (DoubleCheck 2.3.1 vs Beowulf 2.4)
66 >Beowulf 2.4(3): ucinewgame
67 >Beowulf 2.4(3): position startpos
67 >Beowulf 2.4(3): position startpos moves d2d4
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3 e8g8
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3 e8g8 e1g1
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3 e8g8 e1g1 d7d5
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3 e8g8 e1g1 d7d5 c4d5
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3 e8g8 e1g1 d7d5 c4d5 e6d5
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3 e8g8 e1g1 d7d5 c4d5 e6d5 a2a3
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3 e8g8 e1g1 d7d5 c4d5 e6d5 a2a3 b4d6
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3 e8g8 e1g1 d7d5 c4d5 e6d5 a2a3 b4d6 b2b4
67 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3 e8g8 e1g1 d7d5 c4d5 e6d5 a2a3 b4d6 b2b4 a7a6
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
68 <Beowulf 2.4(3): Error - Illegal Input!
2819 >Beowulf 2.4(3): position startpos moves d2d4 g8f6 c2c4 e7e6 b1c3 f8b4 g1f3 b7b6 e2e3 c8b7 f1d3 e8g8 e1g1 d7d5 c4d5 e6d5 a2a3 b4d6 b2b4 a7a6 d1b3
2819 >Beowulf 2.4(3): isready
2819 <Beowulf 2.4(3): Error - Illegal Input!
2819 <Beowulf 2.4(3): readyok
2819 >Beowulf 2.4(3): go wtime 68249 btime 70000 winc 1000 binc 1000
70268 >Beowulf 2.4(0): stop
73088 >Beowulf 2.4(3): stop
Finished game 1 (Beowulf 2.4 vs DoubleCheck 2.3.1): 0-1 {White's connection stalls}
Score of Beowulf 2.4 vs DoubleCheck 2.3.1: 0 - 1 - 0 [0.00] 1
80280 >Beowulf 2.4(3): stop
80280 >Beowulf 2.4(3): isready
80280 <Beowulf 2.4(3): readyok
Finished game 2 (DoubleCheck 2.3.1 vs Beowulf 2.4): * {No result}
Score of Beowulf 2.4 vs DoubleCheck 2.3.1: 0 - 1 - 0 [0.00] 1
80281 >Beowulf 2.4(3): quit
I suspect the engines are at fault rather than cutechess-cli,. I'll run the same with cutechess-cli 0.4.2 and compare to see if I can find the difference that made them crash.
lucasart wrote:
I suspect the engines are at fault rather than cutechess-cli,. I'll run the same with cutechess-cli 0.4.2 and compare to see if I can find the difference that made them crash.
I sent the commands manually to Beowulf, exactly the same commands in the same order as the ones sent by cutechess-cli, and this is the one that caused it to crash:
However this command is perfectly correct, so Beowulf 2.4 is at fault, not cutechess-cli. The only thing I don't understand is why Beowulf 2.4 works fine with cutechess-cli 0.4.2.
I didn't have a look at Jazz 501, but it also crashes. Note that Jazz 501 is an xboard engine.
lucasart wrote:
I suspect the engines are at fault rather than cutechess-cli,. I'll run the same with cutechess-cli 0.4.2 and compare to see if I can find the difference that made them crash.
I sent the commands manually to Beowulf, exactly the same commands in the same order as the ones sent by cutechess-cli, and this is the one that caused it to crash:
However this command is perfectly correct, so Beowulf 2.4 is at fault, not cutechess-cli. The only thing I don't understand is why Beowulf 2.4 works fine with cutechess-cli 0.4.2.
I didn't have a look at Jazz 501, but it also crashes. Note that Jazz 501 is an xboard engine.
In other words, that stupid Beowulf is saying that in this position:
[d]r1bqkbnr/pp1ppppp/2n5/8/3NP3/8/PPP2PPP/RNBQKB1R b KQkq -
Nf6 is an illegal move !?
As for Jazz, I don't know the xboard protocal, so I can't really say, but here are the commands sent by cutechess-cli to Jazz 5.01 and caused it to crash:
As for Jazz, I don't know the xboard protocal, so I can't really say, but here are the commands sent by cutechess-cli to Jazz 5.01 and caused it to crash (with a seg fault)
As for Jazz, I don't know the xboard protocal, so I can't really say, but here are the commands sent by cutechess-cli to Jazz 5.01 and caused it to crash: ...
Did you get any output back from Jazz? From the lines you posted it seems like the process was dead all along. When I try to run Jazz 5.01 on my Ubuntu box, it crashes immediately with an "Illegal instruction" error. This happens with both the 32-bit and 64-bit executable.
As for Jazz, I don't know the xboard protocal, so I can't really say, but here are the commands sent by cutechess-cli to Jazz 5.01 and caused it to crash: ...
Did you get any output back from Jazz? From the lines you posted it seems like the process was dead all along. When I try to run Jazz 5.01 on my Ubuntu box, it crashes immediately with an "Illegal instruction" error. This happens with both the 32-bit and 64-bit executable.
Oops, my mistake. Forget about Jazz. I was using the UCI compile in Xboard mode. And the UCI interpreter of Jazz discards UCI-illegal Xboard commands and outputs nothing (which is correct behaviour according to the UCI protocol).
So it's only Beowulf, and the bug is clearly in Beowulf.