Engine settings overriding my custom polyglot files

Discussions about the WinBoard protocol. Here you can also report bugs and request new features.

Moderators: hgm, Andres Valverde

Engine settings overriding my custom polyglot files

Postby Somnus » 03 Oct 2012, 18:20

I often use Winboard to analyze positions with Stockfish, Critter, and Komodo. I have special polyglot ini files for each engine which I specify on the command line like this:

D:\Chess\FICS\Local\WinBoard\winboard.exe -cp -fcp "polyglot stockfish.ini" -fd "D:\Chess\Polyglot" -scp "polyglot stockfish.ini" -sd "D:\Chess\Polyglot"

There are times in those individual ini's I purposely set the number of threads to each program to 2 instead of 4 so that I can use 2 programs at once to get two different views on a position file. The problem is that Winboard is overriding my custom settings and using the Common Engine settings from it's own winboard.ini file. I've tried to unset all those values, but then Winboard refuses to start.

Then when I use a program online on FICS/ICC, Winboard again is taking over and not using my individual settings for each engine, and uses it's own. How do I get it to only use my ini files for each engine?
Somnus
 
Posts: 54
Joined: 26 Dec 2004, 03:12
Location: Edmonton, Alberta, Canada

Re: Engine settings overriding my custom polyglot files

Postby H.G.Muller » 03 Oct 2012, 20:51

I don't understand how WinBoard could 'refuse to start'. If you remove settings out of the ini file, or remove the ini file altogether, it should simply use compiled-in defaults which are sensible (1 core, 64MB hash). And it should not care anyway even if the settings are nonsensical, as it doesn't use them itself.

If you don't want Polyglot to obey the GUI commands for cores or hash size, the simples way is to use an obsolete Polyglot that doesn't support those commands. The recommended way, however, is to set the value you want in the GUI and let the engines obey it. Then you would not even have to make special ini files (or in fact any ini files whatsoever). Having the engines disobey the GUI settings only seems an advantage when you specify wrong GUI settings... And you cannot escape the fact that you have to specify correct settings somewhere, no matter how much you subvert proper operation, so why not specify them in the place that was intended for this?

D:\Chess\FICS\Local\WinBoard\winboard.exe -cp -fcp "stockfish" -fd "D:\Chess\Stockfish" -fUCI -scp "stockfish" -sd "D:\Chess\Stockfish" -sUCI -smpCores 2

If you did install Stockfish as UCI engine in WinBoard's engine list, the latest beta even allows you to abbreviate that to

D:\Chess\FICS\Local\WinBoard\winboard.exe -fe "stockfish" -se "stockfish" -smpCores 2

where the (new) -fe / -se options retrieve an engine by tidy name from the list, together with all options accompanying it (such as -fd and -fUCI), and imply -cp mode.
User avatar
H.G.Muller
 
Posts: 3080
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Engine settings overriding my custom polyglot files

Postby Somnus » 03 Oct 2012, 21:00

H.G.Muller wrote:I don't understand how WinBoard could 'refuse to start'. If you remove settings out of the ini file, or remove the ini file altogether, it should simply use compiled-in defaults which are sensible (1 core, 64MB hash). And it should not care anyway even if the settings are nonsensical, as it doesn't use them itself.

If you don't want Polyglot to obey the GUI commands for cores or hash size, the simples way is to use an obsolete Polyglot that doesn't support those commands. The recommended way, however, is to set the value you want in the GUI and let the engines obey it. Then you would not even have to make special ini files (or in fact any ini files whatsoever). Having the engines disobey the GUI settings only seems an advantage when you specify wrong GUI settings... And you cannot escape the fact that you have to specify correct settings somewhere, no matter how much you subvert proper operation, so why not specify them in the place that was intended for this?

D:\Chess\FICS\Local\WinBoard\winboard.exe -cp -fcp "stockfish" -fd "D:\Chess\Stockfish" -fUCI -scp "stockfish" -sd "D:\Chess\Stockfish" -sUCI -smpCores 2

If you did install Stockfish as UCI engine in WinBoard's engine list, the latest beta even allows you to abbreviate that to

D:\Chess\FICS\Local\WinBoard\winboard.exe -fe "stockfish" -se "stockfish" -smpCores 2

where the (new) -fe / -se options retrieve an engine by tidy name from the list, together with all options accompanying it (such as -fd and -fUCI), and imply -cp mode.


Here is an example of one of my ini files:

[PolyGlot]
EngineName = Critter 1.6a x64
EngineDir = D:\Chess\Critter 1.6a
EngineCommand = Critter_1.6a_64bit.exe

Log = false
#LogFile = critter.log
KibitzMove = true
KibitzCommand = whisper
Book=true
BookLearn=true
BookFile=D:\Chess\Polyglot\books\sup.bin
ScoreWhite = true
Resign=true
ResignMoves=6
BookRandom=false
UCIVersion=1
CanPonder=true

[Engine]
Hash = 2048
Ponder = true
OwnBook = false
UCI_Chess980 = false
Threads = 4
GaviotaTbPath = D:\Chess\gtb
GaviotaTbCache = 256
GaviotaTbCompression = cp4
Tablebase Usage = Everywhere

Yet when I start Critter, it only uses 1GB hash. That setting is in the Winboard.ini file. Now if I switch the Winboard.ini setting to 2048, it still only uses 1GB. This happened to all engines.

Something seems broken somewhere.

Peter
Somnus
 
Posts: 54
Joined: 26 Dec 2004, 03:12
Location: Edmonton, Alberta, Canada

Re: Engine settings overriding my custom polyglot files

Postby H.G.Muller » 03 Oct 2012, 21:04

Are you sure that you switched the setting it in the winboard.ini file that WinBoard actually uses (i.e., the one in your AppData folder)? What are the first few (comment) lines in the ini file you edited? What does WinBoard say its setting for the hash size is, in its Common Engine Options dialog?
User avatar
H.G.Muller
 
Posts: 3080
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Engine settings overriding my custom polyglot files

Postby Somnus » 03 Oct 2012, 21:10

H.G.Muller wrote:Are you sure that you switched the setting it in the winboard.ini file that WinBoard actually uses (i.e., the one in your AppData folder)? What are the first few (comment) lines in the ini file you edited? What does WinBoard say its setting for the hash size is, in its Common Engine Options dialog?


I just fixed it. I removed the winboard.ini files in the appdata folder and the winboard folder itself, ran the program to let it re-create them, and then added my style settings back. Once I started the program again, Critter uses 2048mb hash correctly. It seems as though the appdata winboard.ini wasn't updating the hash amount as one said 1024mb and the other said 2048mb.

Now without specifying values in Winboard, everything is working as it should (or the way I prefer it to).

On a completely different topic, I have been trying to compile the latest source with MSVC 2010 or the latest Intel compiler, and I always get errors. What is the proper way of compiling it under Windows?
Somnus
 
Posts: 54
Joined: 26 Dec 2004, 03:12
Location: Edmonton, Alberta, Canada

Re: Engine settings overriding my custom polyglot files

Postby Somnus » 03 Oct 2012, 21:32

These are the errors I am getting:

1>..\parser.c(91): error C2054: expected '(' to follow 'inline'
1>..\parser.c(92): error C2085: 'Match' : not in formal parameter list
1>..\parser.c(92): error C2143: syntax error : missing ';' before '{'
1>..\parser.c(103): error C2054: expected '(' to follow 'inline'
1>..\parser.c(104): error C2085: 'Word' : not in formal parameter list
1>..\parser.c(104): error C2143: syntax error : missing ';' before '{'
Somnus
 
Posts: 54
Joined: 26 Dec 2004, 03:12
Location: Edmonton, Alberta, Canada

Re: Engine settings overriding my custom polyglot files

Postby H.G.Muller » 03 Oct 2012, 22:13

Somnus wrote:It seems as though the appdata winboard.ini wasn't updating the hash amount as one said 1024mb and the other said 2048mb.


The one you have been editing was the master settings file in the WinBoard folder, and that indeed has no effect on the settings WinBoard will use from the one in AppData. It is only used as a template for first-time users that do not have their own settings file yet.

Now without specifying values in Winboard, everything is working as it should (or the way I prefer it to).

Well, what you broke is that other users of that same computer could alter your settings if they also use WinBoard, as you now share the settings file with them, since you deleted the master settings file. But if you are the only user on that computer, you would not care.

On a completely different topic, I have been trying to compile the latest source with MSVC 2010 or the latest Intel compiler, and I always get errors. What is the proper way of compiling it under Windows?


I always compile with Cygwin + gcc. From your error message I would say MSVC doesn't like the 'inline' qualifier with some of the functions in parser.c. Perhaps it needs a different syntax for that. You could try deleting them.
User avatar
H.G.Muller
 
Posts: 3080
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL


Return to WinBoard development and bugfixing

Who is online

Users browsing this forum: No registered users and 1 guest