version 1.4.44b
[polyglot.git] / polyglot.man
index e0dcef7..9d456f6 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "POLYGLOT 6"
-.TH POLYGLOT 6 "2009-01-15" "" ""
+.TH POLYGLOT 6 "2009-09-01" "" ""
 .SH "NAME"
 PolyGlot \-  Winboard protocol to UCI protocol adapter
          \-  book engine for Polyglot books 
@@ -138,9 +138,7 @@ PolyGlot \-  Winboard protocol to UCI protocol adapter
          \-  a perft counter
 .SH "SYNOPSIS"
 .IX Header "SYNOPSIS"
-polyglot [configfile]
-.PP
-polyglot \-ec engine
+polyglot [configfile] [\-noini] [\-ec engine] [\-ed enginedirectory] [\-en enginename] [\-log] [\-lf logfile] [\-hash value] [\-bk book] [\-pg <name>=<value>]* [\-uci <name>=<value>]*
 .PP
 polyglot make-book [\-pgn inputfile] [\-bin outputfile] [\-max\-ply ply] [\-min\-game games] [\-min\-score score] [\-only\-white] [\-only\-black] [\-uniform]
 .PP
@@ -148,9 +146,9 @@ polyglot merge-book \-in1 inputfile1 \-in2 inputfile2 [\-out outputfile]
 .PP
 polyglot info-book [\-bin inputfile] [\-exact]
 .PP
-polyglot dumb-book [\-bin inputfile] \-color color [\-out outputfile]
+polyglot dump-book [\-bin inputfile] \-color color [\-out outputfile]
 .PP
-polyglot [configfile] epd-test [\-epd inputfile] [\-min\-depth depth] [\-max\-depth depth] [\-max\-time time] [\-depth\-delta delta] 
+polyglot [configfile] epd-test [engineoptions] [\-epd inputfile] [\-min\-depth depth] [\-max\-depth depth] [\-max\-time time] [\-depth\-delta delta] 
 .PP
 polyglot perft [\-fen fen] [\-max\-depth depth]
 .SH "DESCRIPTION"
@@ -243,16 +241,46 @@ up to a given depth. PolyGlot can perform such perft counts. It
 is however much slower than other more dedicated programs.
 .SH "OPTIONS"
 .IX Header "OPTIONS"
-When invoked without options or with a config file as argument PolyGlot
-acts as an adapter. The config file format is documented below.  The
-default config file is \*(L"polyglot.ini\*(R".
-.PP
-When invoked as
-.Sh "polyglot \-ec engine"
-.IX Subsection "polyglot -ec engine"
-PolyGlot simply starts \*(L"engine\*(R" and acts as an adapter. No config file
-is used and thus it is expected that all properties will be set by the
-\&\s-1GUI\s0. 
+When PolyGlot is invoked as an adapter of in epd-test mode it gets its
+options from a config file and then from the command line.  The
+default config file is \*(L"polyglot.ini\*(R" but an alternative one may be
+optionally included as first argument. The config file format is
+described below.
+.PP
+The following engine options may be specified on the command line.
+.IP "\fB\-noini\fR" 4
+.IX Item "-noini"
+Do not use a config file, even if one was specified on the command line.
+.IP "\fB\-pg\fR" 4
+.IX Item "-pg"
+The argument is a string of the form <name>=<value>. This option will
+set the Polyglot option <name> to <value>. 
+.IP "\fB\-uci\fR" 4
+.IX Item "-uci"
+The argument is a string of the form <name>=<value>. This option will
+set the engine option <name> to <value>. 
+.IP "\fB\-ec\fR" 4
+.IX Item "-ec"
+This is an alias for \-pg \*(L"EngineCommand=<value>\*(R".
+.IP "\fB\-ed\fR" 4
+.IX Item "-ed"
+This is an alias for \-pg \*(L"EngineDir=<value>\*(R".
+.IP "\fB\-en\fR" 4
+.IX Item "-en"
+This is an alias for \-pg \*(L"EngineName=<value>\*(R"
+.IP "\fB\-hash\fR" 4
+.IX Item "-hash"
+This is an alias for \-uci \*(L"Hash=<value>\*(R".
+.IP "\fB\-log\fR" 4
+.IX Item "-log"
+This is an alias for \-pg \*(L"Log=true\*(R".
+.ie n .IP "\fB\-lf\fR (default: ""polyglot.log"")" 4
+.el .IP "\fB\-lf\fR (default: ``polyglot.log'')" 4
+.IX Item "-lf (default: polyglot.log)"
+This is an alias for \-pg \*(L"LogFile=<value>\*(R".
+.IP "\fB\-bk\fR" 4
+.IX Item "-bk"
+This is an alias for \-pg \*(L"Book=true\*(R" \-pg \*(L"BookFile=<value>\*(R".
 .PP
 When invoked as
 .Sh "polyglot make-book"
@@ -338,8 +366,9 @@ Note that this takes a very long time.
 When invoked as
 .Sh "polyglot epd-test"
 .IX Subsection "polyglot epd-test"
-(possibly with a config file as first argument) PolyGlot supports the following
-options
+(possibly with a config file as first argument) PolyGlot supports
+besides the generic options described above the following additional
+options.
 .IP "\fB\-max\-depth\fR (default: 63)" 4
 .IX Item "-max-depth (default: 63)"
 Unconditionally stop the search when this depth has
@@ -349,8 +378,9 @@ been reached.
 Unconditionally stop the seach after this amount of time.
 .IP "\fB\-depth\-delta\fR (default: 3)" 4
 .IX Item "-depth-delta (default: 3)"
-Stop the search if the best move has been constant for this many depths,
-on condition that the mininal depth and minimal time have been reached.
+Stop the search if the solution as been found and the best move has
+been constant for this many depths, on condition that the mininal
+depth and minimal time have been reached.
 .IP "\fB\-min\-depth\fR (default: 8)" 4
 .IX Item "-min-depth (default: 8)"
 Minimal search depth when the search is stopped using \*(L"\-depth\-delta\*(R".
@@ -384,10 +414,12 @@ The config file is in the traditional \s-1INI\s0 format.
 \&    ...
 .Ve
 .PP
-Lines starting with \*(L"#\*(R" are ignored.
+The characters \*(L"#\*(R" and \*(L";\*(R" serve as comment characters. 
 .PP
-\&\s-1NOTE:\s0 There can be spaces in option names or values.  Do not use
-quotes. Boolean values are written as \*(L"true\*(R" or \*(L"false\*(R". 
+By default initial and final white space is stripped from option
+values. If you want to avoid this, or if you want use one of
+the comment characters # or ; in option values (such as for NalimovPath), 
+enclose the value in quotes.
 .Sh "[PolyGlot] section"
 .IX Subsection "[PolyGlot] section"
 This section is used by PolyGlot only.  The engine is unaware of these
@@ -440,6 +472,9 @@ This is the score in centipawns that will trigger resign \*(L"counting\*(R".
 .IX Item "ShowPonder (default: true)"
 Show search information during engine pondering.  Turning this off
 might be better for interactive use in some interfaces.
+.IP "\fBScoreWhite\fR (default: true)" 4
+.IX Item "ScoreWhite (default: true)"
+Report score from white's point of view in xboard mode.
 .IP "\fBKibitzMove\fR (default: false)" 4
 .IX Item "KibitzMove (default: false)"
 Whether to kibitz when playing a move.
@@ -456,15 +491,16 @@ or \*(L"tellothers\*(R" for whispering.
 How many seconds to wait before starting kibitzing.  This has an
 effect only if \*(L"KibitzPV\*(R" is selected, move kibitzes are always sent
 regardless of the delay.
+.IP "\fBKibitzInterval\fR (default: 0)" 4
+.IX Item "KibitzInterval (default: 0)"
+This is another form of throttling. PolyGlot will usually wait this
+many seconds before doing the next kibitz. 
 .IP "\fB\s-1UCI\s0\fR (default: false)" 4
 .IX Item "UCI (default: false)"
 If true PolyGlot will not understand xboard commands. 
-.IP "\fBChess960\fR (default: false)" 4
-.IX Item "Chess960 (default: false)"
-Play Chess960 (also called Fischer Random Chess or \s-1FRC\s0),
 .IP "\fBMateScore\fR (default: 10000)" 4
 .IX Item "MateScore (default: 10000)"
-Mate score reported to \s-1GUI\s0 when in xboard mode. 
+Mate score reported to \s-1GUI\s0 when in xboard mode.
 .IP "\fBBook\fR (default: false)" 4
 .IX Item "Book (default: false)"
 Indicates whether a PolyGlot book should be used.  This has no effect
@@ -484,10 +520,16 @@ does not matter.
 .IX Item "BookRandom (default: true)"
 Select moves according to their weights in the book. If false the move
 with the highest weight is selected. 
-.IP "\fBBookLearn\fR (default: false)" 4
-.IX Item "BookLearn (default: false)"
-Record learning information in the opening book. Naturally this requires
-the opening book to be writable. 
+.IP "\fBBookRandom\fR (default: true)" 4
+.IX Item "BookRandom (default: true)"
+Select moves according to their weights in the book. If false the move
+with the highest weight is selected. 
+.IP "\fBBookDepth\fR (default: 256)" 4
+.IX Item "BookDepth (default: 256)"
+Stop using the book after this number of moves. 
+.IP "\fBBookTreshold\fR (default: 5)" 4
+.IX Item "BookTreshold (default: 5)"
+Do not play moves with a weight (probability) lower than this (in per mil). 
 .IP "\fBUseNice\fR (default: false)" 4
 .IX Item "UseNice (default: false)"
 Run the engine at nice level 5, or \*(L"NiceValue\*(R" if it set.  On some
@@ -503,12 +545,22 @@ Win32 priority levels are mapped in a sensible way to Unix nice levels.
 .IX Item "Affinity (default: -1)"
 This a bit vector in which each bit represents the processors that a
 process is allowed to run on. This option works only on Windows. 
+.IP "\fBPersist\fR (default: true)" 4
+.IX Item "Persist (default: true)"
+If true then PolyGlot will implement persistence by loading 
+options from an additional \s-1INI\s0 file which is specified by the option
+\&\*(L"PersistFile\*(R". At exit PolyGlot will also save its options to this \s-1INI\s0
+file. 
+.IP "\fBPersistFile\fR (default: PG_<EngineName>.ini)" 4
+.IX Item "PersistFile (default: PG_<EngineName>.ini)"
+The name of the file from which to take the additional options.
+You can safely edit this file, or delete it to restore the default
+options.
 .Sh "Work arounds"
 .IX Subsection "Work arounds"
 Work arounds are identical to options except that they should be used
 only when necessary.  Their purpose is to try to hide problems with
-various software (not just engines).  The default value is always
-correct for bug-free software.
+various software (not just engines).  
 .PP
 \&\s-1IMPORTANT:\s0 Any of these work arounds might be removed in future
 versions of PolyGlot.  You are strongly recommended to contact the
@@ -541,9 +593,24 @@ incorrect form (and of course promotes into a queen).
 .IX Item "RepeatPV (default: true)"
 When true, PolyGlot repeats the last pv string (which also contains
 score,depth and time usage) it got from the engine. Some engines
-however do not send a new pv string just before sending the move and
-the now old pv string might confuse debugtools that parse the winboard
-debug files.
+however do not send a new pv string just before sending the move.
+In that case the output of PolyGlot would be inconsistent. 
+When RepeatPV is false PolyGlot does not repeat the last pv string.
+Due to the way kibitzing is implemented, KibitzMove is disabled in that case. 
+.IP "\fBWbWorkArounds\fR (default: true)" 4
+.IX Item "WbWorkArounds (default: true)"
+The intention of these options is to provide work arounds for
+xboard/winboard bugs should they arise.  This one decapitalizes
+the word Draw in options that contain this word. Some versions of
+xboard/winboard contain a bug which causes such options to be
+interpreted as draw claims by the engine.
+.Sp
+Engines that send options with \*(L"Draw\*(R" in their name are Rybka and \s-1HIARCS\s0. 
+.IP "\fBWbWorkArounds2\fR (default: false)" 4
+.IX Item "WbWorkArounds2 (default: false)"
+Old version of Winboard clear the engine output window at depth 1. With this
+work around \s-1PG\s0 will send info lines at depth >=2. This may or may not improve
+the display. 
 .Sh "[Engine] section"
 .IX Subsection "[Engine] section"
 This section contains engine \s-1UCI\s0 options.  PolyGlot does not
@@ -579,25 +646,38 @@ most 30 plies.
 \&    polyglot make\-book \-pgn games.pgn \-bin book.bin \-max\-ply 30
 .Ve
 .PP
-Merge books \*(L"in1.bin\*(R" and \*(L"in2.bin\*(R" into a book \*(L"out.bin\*(R".
+Merge books \*(L"w1.bin\*(R" and \*(L"w2.bin\*(R" into a book \*(L"w.bin\*(R".
 .PP
 .Vb 1
 \&    polyglot merge\-book \-in1 w1.bin \-in2 w2.bin \-out w.bin
 .Ve
 .PP
-The command line for using the \s-1UCI\s0 engine \*(L"fruit\*(R" in a \s-1GUI\s0 which uses the
-xboard protocol.
+Inspect lines for white in \*(L"w.bin\*(R"
+.PP
+.Vb 1
+\&    polyglot dump\-book \-bin w.bin \-color white \-out w_white.txt
+.Ve
+.PP
+Test epd file \*(L"test.epd\*(R" with a (maximum) search time of 7 minutes per position
+.PP
+.Vb 1
+\&    polyglot epd\-test \-epd test.epd \-max\-time 420
+.Ve
+.PP
+The command line for using the \s-1UCI\s0 engine \*(L"fruit\*(R" with 128M hash in xboard with logging enabled.
 .PP
 .Vb 1
-\&    polyglot \-ec fruit
+\&    xboard \-fcp "polyglot \-noini \-log \-ec fruit \-hash 128"
 .Ve
 .PP
-The equivalent config file:
+The equivalent config file would be:
 .PP
-.Vb 3
+.Vb 5
 \&    [PolyGlot]
 \&    EngineCommand = fruit
+\&    Log = true
 \&    [Engine]
+\&    Hash=128
 .Ve
 .SH "EXIT STATUS"
 .IX Header "EXIT STATUS"