Bug: not all UCI check options available?

Get your specific HIARCS/Junior support questions answered here as well as up-to-the-minute news!

Moderators: Watchman, Mark Uniacke, mrudolf

Post Reply
IanO
Member
Posts: 162
Joined: Sat Aug 15, 2009 11:43 pm
Location: Portland, OR

Bug: not all UCI check options available?

Post by IanO »

Greetings,

I have been a little baffled trying to set all options for UCI engines through HIARCS Explorer. It appears that some UCI check options cannot be set for any engines! For example, here are the options for Critter 1.6a when run at the command line and I type "uci":

Code: Select all

id name Critter 1.6a 64-bit
id author Richard Vida
option name Hash type spin default 64 min 8 max 8192
option name Ponder type check default false
option name OwnBook type check default true
option name Book File type string default book.cbk
option name UCI_Chess960 type check default false
option name MultiPV type spin default 1 min 1 max 100
option name Threads type spin default 8 min 1 max 32
option name Split Depth type spin default 5 min 4 max 15
option name GaviotaTbPath type string default /gtb
option name GaviotaTbCache type spin default 32 min 4 max 256
option name GaviotaTbCompression type combo default cp4 var uncompressed var cp1 var cp2 var cp3 var cp4
option name Tablebase Usage type combo default Only At Root var Disable var Only At Root var Everywhere
option name Clear Hash type button
option name Use Session File type check default false
option name Session File type string default session.csf
option name SF Size type spin default 32 min 2 max 1024
option name SF Write Depth type spin default 8 min 2 max 32
option name SF Material Limit type spin default 0 min 0 max 32
option name SF Move Limit type spin default 0 min 0 max 999
option name Clear SF type button
option name Resolve Score Drops type check default false
option name King Safety Weight type spin default 32 min 0 max 100
uciok
However, when I add Critter as an engine, and then click Configure... the "Hash", "Ponder", "OwnBook", "UCI_Chess960", and "MultiPV" options are not present. "Hash", "Ponder", and "MultiPV" I understand; they are linked to other pieces of the UI (Shared hash, New Game > Think on player's time, and Lines spinner on Analysis, respectively). But I don't get why "OwnBook" is not shown. For some engines like Texel, this is the only way to turn on an internal book.

Are there UCI options which are always hidden from the configure interface? Is this documented somewhere, along with alternate ways to set them from the Explorer UI?
User avatar
Mark Uniacke
Hiarcs Author
Posts: 1458
Joined: Sun Jul 29, 2007 1:32 pm
Location: United Kingdom
Contact:

Post by Mark Uniacke »

We follow the UCI spec for predefined UCI options so they are handled outside of the normal engine option configuration.
The OwnBook is set to false during analysis (non playing), when playing OwnBook is set to true. These seemed the most natural values in those two modes.

The relevant UCI spec says the following
"Certain options have a fixed value for <id>, which means that the semantics of this option is fixed. Usually those options should not be displayed in the normal engine options window of the GUI but get a special treatment. "Pondering" for example should be set automatically when pondering is enabled or disabled in the GUI options. The same for "UCI_AnalyseMode" which should also be set automatically by the GUI. All those certain options have the prefix "UCI_" except for the first 6 options below.
* <id> = Hash, type is spin
the value in MB for memory for hash tables can be changed,
this should be answered with the first "setoptions" command at program boot
if the engine has sent the appropriate "option name Hash" command,
which should be supported by all engines!
So the engine should use a very small hash first as default.
* <id> = NalimovPath, type string
this is the path on the hard disk to the Nalimov compressed format.
Multiple directories can be concatenated with ";"
* <id> = NalimovCache, type spin
this is the size in MB for the cache for the nalimov table bases
These last two options should also be present in the initial options exchange dialog
when the engine is booted if the engine supports it
* <id> = Ponder, type check
this means that the engine is able to ponder.
The GUI will send this whenever pondering is possible or not.
Note: The engine should not start pondering on its own if this is enabled, this option is only
needed because the engine might change its time management algorithm when pondering is allowed.
* <id> = OwnBook, type check
this means that the engine has its own book which is accessed by the engine itself.
if this is set, the engine takes care of the opening book and the GUI will never
execute a move out of its book for the engine. If this is set to false by the GUI,
the engine should not access its own book.
* <id> = MultiPV, type spin
the engine supports multi best line or k-best mode. the default value is 1 ".
Best wishes,
Mark

https://www.hiarcs.com
IanO
Member
Posts: 162
Joined: Sat Aug 15, 2009 11:43 pm
Location: Portland, OR

Post by IanO »

Thanks! Didn't realize these were in the UCI spec itself.

With the advent of many new TB types, the Nalimov ones seem a bit out of date to have special handling.
Post Reply