Page 6 of 18

Re: Cutechess-cli: a little problem with Bright 0.4a

Posted: Sun Mar 29, 2009 2:51 pm
by Marc Lacrosse
Same problem with Colossus 2008b

colossus has the following UCI option :

Code: Select all

option name NalimovPath type string
I get :

Code: Select all

Invalid UCI option from "Colossus-2008b" : "name NalimovPath type string"
Seems similar : problem with options of the "string" type if no default value is defined ?

Marc

Re: Cutechess-cli: need some help

Posted: Sun Mar 29, 2009 4:04 pm
by ilari
Marc Lacrosse wrote:By the way it works well with absolute paths.
Yeah, relative paths don't work currently. I'll fix that in the next version.

Re: Cutechess-cli: a little problem with Bright 0.4a

Posted: Sun Mar 29, 2009 4:15 pm
by ilari
Marc Lacrosse wrote:I have the following problem with Bright -0.4a :

I get the following error message and the first game won't begin :

Code: Select all

Invalid UCI option from "Bright-0.4a" : "name UCI_Opponent type string"
when I launch bright from the command line there is effectively a "UCI-Opponent" uci option. This is the only option without a default value : is this the origin of the problem ?
It reads :
option name UCI_Opponent type string

I suppose your parser could well be hanging trying to get a default value ...

Marc
The parser works fine, but UciOption::isOk() returns false if the default value is empty. This can be fixed by removing two lines of code.

I'll probably release a new version next week.

Re: Cutechess-cli: A command line tool for engine-engine mat

Posted: Tue Apr 07, 2009 1:00 pm
by ilari
I've uploaded a new version (0.1.3) with a few changes:

- Fix an error in the help text (the uci option thing)
- UCI string options without a default value are now accepted
- Support relative paths in the "dir" engine option
- Support millisecond-precision in time controls

The millisecond-precision uses the same format as any other time control in Cutechess-cli. Eg. "tc=10.5+0.15" means that the time per tc is 10.5 seconds, and the time increment is 0.15 seconds (150 ms). Millisecond-precision only works with UCI engines.

Note for Windows users:
I'm still working on getting rid of the 100 - 200 ms lag between moves. Currently crazy-fast games (eg. under 10 seconds per game) don't work that well, at least not on my PC. I may have to write my own fork of QProcess, which means a lot of work. The Linux and OSX versions don't have this problem.

Re: Cutechess-cli: A command line tool for engine-engine mat

Posted: Tue Apr 07, 2009 5:20 pm
by Marc Lacrosse
ilari wrote:I've uploaded a new version (0.1.3) with a few changes:

- Fix an error in the help text (the uci option thing)
- UCI string options without a default value are now accepted
- Support relative paths in the "dir" engine option
- Support millisecond-precision in time controls

The millisecond-precision uses the same format as any other time control in Cutechess-cli. Eg. "tc=10.5+0.15" means that the time per tc is 10.5 seconds, and the time increment is 0.15 seconds (150 ms). Millisecond-precision only works with UCI engines.

Note for Windows users:
I'm still working on getting rid of the 100 - 200 ms lag between moves. Currently crazy-fast games (eg. under 10 seconds per game) don't work that well, at least not on my PC. I may have to write my own fork of QProcess, which means a lot of work. The Linux and OSX versions don't have this problem.
Thanks a lot.
I will give this new version a try as soon as possible.
Marc

Millispeconds and a new EPD spec

Posted: Tue Apr 07, 2009 6:02 pm
by sje
ilari wrote:I've uploaded a new version (0.1.3) with a few changes:

- Support millisecond-precision in time controls
I agree that millisecond resolution is the way to go. Piloted spacecraft use a millisecond period update for critical telemetry; if it's good enough for a spaceship then I suppose it's good enough for a chess clock.

A new EPD specification is coming, and it uses a tighter formalism for a number of things including time values. Example:

Code: Select all

r1bqkbnr/pppp1ppp/2n5/8/3Q4/2N5/PPP1PPPP/R1B1KBNR w KQkq - 1 4 acd 6; acn 1436575; cc 4:55.265 4:54.606; pes +0.020; pv Qd3 h6 Nf3 Nf6 e4 Bd6; te 1.445; tu 1.333;
Note:

1) The half move counter and the full move number now appear explicitly as the fifth and sixth fields of a standard FEN position specification. The earlier EPD version had these omitted or appearing as optional operations (hmvc and fmvn).

2) Most things don't change: acd, acn, am, bm, pv, sv, etc.

3) Some things are deprecated, such as pm (use the first parameter value of pv instead).

4) All time values share the same the same format of DDD:HH:MM:SS.mmm with optional leading zero suppression. Example: cc (chess clock) has a White and a Black countdown time operand.

5) Instead of acs, te records analysis elapsed (wall) time, and tu represents usage time. Usage may be greater than elapsed time for multicore analysis.

6) The ce operator is deprecated; the replacement pes (pawn equivalent score) operator gives an evaluation in signed floating point pawns with millipawn resolution. There are a few non-decimal values: MateInN (e.g., MateIn3), LoseInN, Even, PosInf, NegInf, and Broken.

7) A few operations are undecided at the moment, like dm and solve.

8) Symbol operands are never quoted and string operands are always quoted. Examples:

id WAC.241;
name "Win at Chess problem 241";

Re: Millispeconds and a new EPD spec

Posted: Tue Apr 07, 2009 8:26 pm
by ilari
sje wrote:
ilari wrote:I've uploaded a new version (0.1.3) with a few changes:

- Support millisecond-precision in time controls
I agree that millisecond resolution is the way to go. Piloted spacecraft use a millisecond period update for critical telemetry; if it's good enough for a spaceship then I suppose it's good enough for a chess clock.
The chess clock in Cutechess-cli always used milliseconds. I was just a bit reluctant to add features that are only supported by the UCI protocol. But I'm slowly beginning to prefer UCI over Xboard, and I don't want Xboard's limitations and quirks to limit the usefulness of my tools.

A new EPD specification is coming, and it uses a tighter formalism for a number of things including time values. Example...
Thanks for the info. Obviously EPD support is on my TODO list for Cute Chess, so I'll keep an eye on any new specs.

Re: Cutechess-cli: A command line tool for engine-engine mat

Posted: Wed Apr 08, 2009 9:21 am
by Edsel Apostol
ilari wrote:I've uploaded a new version (0.1.3) with a few changes:

- Fix an error in the help text (the uci option thing)
- UCI string options without a default value are now accepted
- Support relative paths in the "dir" engine option
- Support millisecond-precision in time controls

The millisecond-precision uses the same format as any other time control in Cutechess-cli. Eg. "tc=10.5+0.15" means that the time per tc is 10.5 seconds, and the time increment is 0.15 seconds (150 ms). Millisecond-precision only works with UCI engines.

Note for Windows users:
I'm still working on getting rid of the 100 - 200 ms lag between moves. Currently crazy-fast games (eg. under 10 seconds per game) don't work that well, at least not on my PC. I may have to write my own fork of QProcess, which means a lot of work. The Linux and OSX versions don't have this problem.
Thanks a lot for this. By the way, I've noticed that the milliseconds increment doesn't reflect in the PGN file.

Here's my setup that runs an average of one game per minute:

Code: Select all

cutechess-cli -fcp cmd=glaurung-w32.exe dir=D:\chess\tests\glaurung2.2\Windows\ uci/Threads=1 -scp name=t20090402 cmd=t20090402.exe dir=D:\chess\tests\src20090402\  -both proto=uci tc=5+0.4 uci/Hash=32 -draw 120 10 -resign 5 300 -games 60 -pgnin D:\chess\tests\cutechess-cli\NoomenTestsuite2008.pgn -repeat -pgnout testgames.pgn
And here's one of the PGN result on slow hardware:

Code: Select all

[Event "?"]
[Site "?"]
[Date "2009.04.08"]
[Round "1"]
[White "Glaurung 2.2 JA"]
[Black "t20090402"]
[Result "0-1"]
[PlyCount "77"]
[TimeControl "5+0"]

1. e4 {book} c5 {book} 2. Nf3 {book} d6 {book} 3. d4 {book} cxd4 {book}
4. Nxd4 {book} Nf6 {book} 5. Nc3 {book} a6 {book} 6. Bg5 {book} e6 {book}
7. f4 {book} Nbd7 {book} 8. Qe2 {book} Qc7 {book} 9. O-O-O {book} b5 {book}
10. a3 {book} Bb7 {book} 11. g4 {book} Be7 {book} 12. Kb1 {+0.37/8 1s}
h6 {+0.08/11 2s} 13. Bh4 {+0.27/10 1s} Nb6 {-0.11/10 3s} 14. Bg3 {+0.23/8 1s}
Nc4 {+0.12/8 1s} 15. Rd3 {+0.19/9 1s} Nd7 {+0.62/10 2s} 16. h4 {+0.09/9 1s}
O-O {+0.73/9 1s} 17. Qf3 {+0.21/9 1s} Rac8 {+0.51/8 1s} 18. g5 {+0.11/9 1s}
h5 {+0.47/9 1s} 19. Be2 {+0.50/9 1s} g6 {+0.59/9 1s} 20. Rg1 {+0.41/9 1s}
e5 {+2.09/10 1s} 21. fxe5 {-1.13/10 1s} Ndxe5 {+1.99/9 1s}
22. Bxe5 {-1.15/10 1s} Nxe5 {+1.78/10 1s} 23. Qe3 {-1.25/10 1s}
Nxd3 {+1.78/10 1s} 24. Qxd3 {-1.25/11 1s} Qc5 {+1.90/9 1s} 25. Bf3 {-1.37/10 1s}
Qe5 {+1.86/9 1s} 26. Nd5 {-1.39/10 1s} Rfe8 {+1.92/9 1s} 27. Rh1 {-1.31/10 1s}
Kg7 {+2.01/9 1s} 28. Rf1 {-1.21/9 1s} Qg3 {0.00/8 0s} 29. Nb6 {-1.31/9 1s}
Rc5 {0.00/8 0s} 30. Nb3 {-1.39/9 1s} Rc7 {0.00/8 0s} 31. Nd5 {-1.92/9 1s}
Bxd5 {0.00/8 0s} 32. Qd4+ {-2.29/10 1s} Kg8 {+2.78/9 0s} 33. Qxd5 {-2.84/10 0s}
Rf8 {+3.21/9 0s} 34. Qd2 {-2.92/9 0s} Qxh4 {+3.34/9 0s} 35. Rg1 {-3.09/11 1s}
Rc4 {+3.49/9 0s} 36. c3 {-3.00/10 0s} Rfc8 {+3.33/9 0s} 37. Qe3 {-3.11/9 0s}
R8c7 {+3.28/8 0s} 38. Ka1 {-3.13/10 0s} Qh2 {+3.24/9 0s} 39. Nc1 {-3.33/9 0s}
{Black wins by adjudication} 0-1

Re: Cutechess-cli: A command line tool for engine-engine mat

Posted: Wed Apr 08, 2009 11:48 am
by Gian-Carlo Pascutto
Ubuntu 8.04 with Qt-4.5

~/git/cute-cli$ make
cd projects/ && make -f Makefile
make[1]: Entering directory `/home/pascuttg/git/cute-cli/projects'
cd lib/ && make -f Makefile
make[2]: Entering directory `/home/pascuttg/git/cute-cli/projects/lib'
make[2]: Nothing to be done for `first'.
make[2]: Leaving directory `/home/pascuttg/git/cute-cli/projects/lib'
cd gui/ && make -f Makefile
make[2]: Entering directory `/home/pascuttg/git/cute-cli/projects/gui'
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DLIB_EXPORT="" -DCUTECHESS_VERSION=\"unknown\" -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I../lib/src -I. -Icomponents/hintlineedit/src -I.moc -Isrc -o .obj/enginemanagementdlg.o src/enginemanagementdlg.cpp
src/enginemanagementdlg.cpp:24: error: ‘EngineManagementDialog’ has not been declared
src/enginemanagementdlg.cpp:25: error: ISO C++ forbids declaration of ‘EngineManagementDialog’ with no type
src/enginemanagementdlg.cpp: In function ‘int EngineManagementDialog(EngineConfigurationModel*, QWidget*)’:
src/enginemanagementdlg.cpp:26: error: only constructors take base initializers
src/enginemanagementdlg.cpp:27: error: invalid use of ‘this’ in non-member function

Re: Cutechess-cli: A command line tool for engine-engine mat

Posted: Wed Apr 08, 2009 12:28 pm
by ilari
Gian-Carlo Pascutto wrote:Ubuntu 8.04 with Qt-4.5

~/git/cute-cli$ make
cd projects/ && make -f Makefile
make[1]: Entering directory `/home/pascuttg/git/cute-cli/projects'
cd lib/ && make -f Makefile
make[2]: Entering directory `/home/pascuttg/git/cute-cli/projects/lib'
make[2]: Nothing to be done for `first'.
make[2]: Leaving directory `/home/pascuttg/git/cute-cli/projects/lib'
cd gui/ && make -f Makefile
make[2]: Entering directory `/home/pascuttg/git/cute-cli/projects/gui'
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DLIB_EXPORT="" -DCUTECHESS_VERSION="unknown" -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I../lib/src -I. -Icomponents/hintlineedit/src -I.moc -Isrc -o .obj/enginemanagementdlg.o src/enginemanagementdlg.cpp
src/enginemanagementdlg.cpp:24: error: ‘EngineManagementDialog’ has not been declared
src/enginemanagementdlg.cpp:25: error: ISO C++ forbids declaration of ‘EngineManagementDialog’ with no type
src/enginemanagementdlg.cpp: In function ‘int EngineManagementDialog(EngineConfigurationModel*, QWidget*)’:
src/enginemanagementdlg.cpp:26: error: only constructors take base initializers
src/enginemanagementdlg.cpp:27: error: invalid use of ‘this’ in non-member function
Looks like the meta-object compiler wasn't used to create the moc files. Did you run qmake first in the root directory of Cute Chess? That is, did you follow the instructions in the INSTALL file?