Cutechess-cli 0.5.0 for Linux available

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

Moderator: Ras

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

Re: Cutechess-cli 0.5.0 for Linux available

Post by ilari »

lucasart wrote:
ilari wrote:
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:

Code: Select all

[
   {
      "command" : "fruit",
      "name" : "Fruit-2.1",
      "options" : [
         {
            "name" : "Hash",
            "value" : 32
         },
         {
            "name" : "OwnBook",
            "value" : false
         },
         {
            "name" : "NullMove Pruning",
            "value" : "Fail High"
         }
      ],
      "protocol" : "uci",
      "workingDirectory" : ""
   },
   {
      "command" : "crafty",
      "name" : "Crafty-23.4",
      "options" : [
         {
            "name" : "memory",
            "value" : 32
         },
         {
            "name" : "cores",
            "value" : 2
         }
      ],
      "protocol" : "xboard",
      "whitepov" : true,
      "workingDirectory" : "",
      "initStrings" : [
         "command 1",
         "command 2"
      ]
   }
]
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.
Joerg Oster
Posts: 969
Joined: Fri Mar 10, 2006 4:29 pm
Location: Germany
Full name: Jörg Oster

Re: Cutechess-cli 0.5.0 for Linux available

Post by Joerg Oster »

Many thanks, Ilari. A nice Christmas gift, indeed.

Have a nice Christmas. :)
Jörg Oster
lucasart
Posts: 3241
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Cutechess-cli 0.5.0 for Linux available

Post by lucasart »

ilari wrote:
lucasart wrote:
ilari wrote:
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:

Code: Select all

[
   {
      "command" : "fruit",
      "name" : "Fruit-2.1",
      "options" : [
         {
            "name" : "Hash",
            "value" : 32
         },
         {
            "name" : "OwnBook",
            "value" : false
         },
         {
            "name" : "NullMove Pruning",
            "value" : "Fail High"
         }
      ],
      "protocol" : "uci",
      "workingDirectory" : ""
   },
   {
      "command" : "crafty",
      "name" : "Crafty-23.4",
      "options" : [
         {
            "name" : "memory",
            "value" : 32
         },
         {
            "name" : "cores",
            "value" : 2
         }
      ],
      "protocol" : "xboard",
      "whitepov" : true,
      "workingDirectory" : "",
      "initStrings" : [
         "command 1",
         "command 2"
      ]
   }
]
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.
Thanks, I'll start playing around with JSON 8-)
lucasart
Posts: 3241
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Cutechess-cli 0.5.0 for Linux available

Post by lucasart »

Hello Ilari,

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:

Code: Select all

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
Posts: 3241
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Cutechess-cli 0.5.0 for Linux available

Post by lucasart »

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:

Code: Select all

position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6
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
Posts: 3241
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Cutechess-cli 0.5.0 for Linux available

Post by lucasart »

lucasart wrote:
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:

Code: Select all

position startpos moves e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 g8f6
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 !?
lucasart
Posts: 3241
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Cutechess-cli 0.5.0 for Linux available

Post by lucasart »

Morality: Beowulf sucks !

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:

Code: Select all

lucas@megatron:~/Chess$ ./cutechess-cli/cutechess-cli.sh -each tc=1:0+1 book=./performance.bin bookdepth=10 -engine name="Jazz 5.01" proto=xboard cmd=./competitors/jazz501 -engine cmd=./competitors/DC231_lin64 proto=uci -debug | grep Jazz
79 >Jazz 5.01(1): xboard
79 >Jazz 5.01(1): protover 2
Started game 1 of 1 (DoubleCheck 2.3.1 vs Jazz 5.01)
2087 >Jazz 5.01(1): new
2087 >Jazz 5.01(1): level 0 1 1
2088 >Jazz 5.01(1): post
2088 >Jazz 5.01(1): easy
2088 >Jazz 5.01(1): force
2088 >Jazz 5.01(1): d2d4
2088 >Jazz 5.01(1): g8f6
2088 >Jazz 5.01(1): c2c4
2088 >Jazz 5.01(1): e7e6
2088 >Jazz 5.01(1): g1f3
2088 >Jazz 5.01(1): d7d5
2088 >Jazz 5.01(1): b1c3
2088 >Jazz 5.01(1): f8e7
2088 >Jazz 5.01(1): c1g5
2088 >Jazz 5.01(1): e8g8
2088 >Jazz 5.01(1): e2e3
2088 >Jazz 5.01(1): h7h6
2088 >Jazz 5.01(1): g5h4
2088 >Jazz 5.01(1): b7b6
2088 >Jazz 5.01(1): f1e2
2088 >Jazz 5.01(1): c8b7
2089 >Jazz 5.01(1): a1c1
2089 >Jazz 5.01(1): b8d7
2089 >Jazz 5.01(1): c4d5
2089 >Jazz 5.01(1): e6d5
4850 >Jazz 5.01(1): e2d3
4850 >Jazz 5.01(1): time 7000
4850 >Jazz 5.01(1): go
Finished game 1 (DoubleCheck 2.3.1 vs Jazz 5.01): 1-0 {Black disconnects}
Score of DoubleCheck 2.3.1 vs Jazz 5.01: 1 - 0 - 0  [1.00] 1
lucasart
Posts: 3241
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Cutechess-cli 0.5.0 for Linux available

Post by lucasart »

lucasart wrote:Morality: Beowulf sucks !
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)

Code: Select all

lucas@megatron:~/Chess$ ./cutechess-cli/cutechess-cli.sh -each tc=1:0+1 book=./performance.bin bookdepth=10 -engine name="Jazz 5.01" proto=xboard cmd=./competitors/jazz501 -engine cmd=./competitors/DC231_lin64 proto=uci -debug | grep ">Jazz" | cut -d\: -f2
 xboard
 protover 2
 new
 level 0 1 1
 post
 easy
 force
 c2c4
 g8f6
 d2d4
 e7e6
 b1c3
 f8b4
 d1c2
 d7d5
 c4d5
 d8d5
 g1f3
 d5f5
 c2f5
 e6f5
 a2a3
 b4e7
 c1g5
 time 6800
 go
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: Cutechess-cli 0.5.0 for Linux available

Post by ilari »

lucasart wrote:Morality: Beowulf sucks !

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.
lucasart
Posts: 3241
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Cutechess-cli 0.5.0 for Linux available

Post by lucasart »

ilari wrote:
lucasart wrote:Morality: Beowulf sucks !

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.