=head1 SYNOPSIS
-polyglot [configfile]
-
-polyglot -ec engine
+polyglot [configfile] [-noini] [-ec engine] [-ed enginedirectory] [-en enginename] [-log true/false] [-lf logfile] [-pg <name>=<value>]* [-uci <name>=<value>]*
polyglot make-book [-pgn inputfile] [-bin outputfile] [-max-ply ply] [-min-game games] [-min-score score] [-only-white] [-only-black] [-uniform]
polyglot dump-book [-bin inputfile] -color color [-out outputfile]
-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]
polyglot perft [-fen fen] [-max-depth depth]
=head1 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 "polyglot.ini".
+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 "polyglot.ini" but an alternative one may be
+optionally included as first argument. The config file format is
+described below.
-When invoked as
+The following engine options may be specified on the command line.
+
+=over 4
+
+=item B<-noini>
+
+Do not use a config file, even if one was specified on the command line.
+
+=item B<-pg>
+
+The argument is a string of the form <name>=<value>. This option will
+set the Polyglot option <name> to <value>.
+
+=item B<-uci>
+
+The argument is a string of the form <name>=<value>. This option will
+set the engine option <name> to <value>.
+
+=item B<-ec>
+
+This is an alias for -pg "EngineCommand=<value>"
+
+=item B<-ed>
+
+This is an alias for -pg "EngineDir=<value>"
+
+=item B<-en>
-=head2 polyglot -ec engine
+This is an alias for -pg "EngineName=<value>"
-PolyGlot simply starts "engine" and acts as an adapter. No config file
-is used and thus it is expected that all properties will be set by the
-GUI.
+=item B<-log> (default: false)
+
+This is an alias for -pg "Log=<value>"
+
+=item B<-lf> (default: "polyglot.log")
+
+This is an alias for -pg "LogFile=<value>".
+
+=item B<-wb> (default: "true")
+
+This is an alias for -pg "OnlyWbOptions=<value>".
+
+=back
When invoked as
=head2 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.
=over 4
The characters "#" and ";" serve as comment characters.
-NOTE: There can be spaces in option names or values. Do not use
-quotes. Boolean values are written as "true" or "false".
+Initial and final white space is stripped from option names and
+values. If you need to use characters which have a special meaning to
+PolyGlot (these are ';#[]=\') you should quote them by preceding them
+with '\'. "Quoting" other characters in this way has no effect. In
+particular the use of '\' as a path separator in windows should
+normally not affected.
=head2 [PolyGlot] section
Put here the name of the engine executable file. You can also add
command-line arguments. Path searching is used and the current
-directory will be "EngineDir".
+directory will be "EngineDir". On Linux the EngineCommand is passed
+to wordexp so that shell quoting rules and expansions are applied.
+On Windows the EngineCommand is simply passed to CreateProcess which
+does its own shell like processing.
+
+=item B<SettingsDir> (default: $HOME/.polyglot on Linux; ".\_PG" on Windows)
+
+The directory where ini files are stored for engines that are started with
+-noini. Such ini files may be created by pushing the "Save" button in the
+Engine settings dialog in WB/XB 4.4.0 and higher. As a special exception
+(for WB/XB 4.4.0 compatibility) this directory is also used in case
+PolyGlot is started with config files named "polyglot_1st.ini" or
+"polyglot_2nd.ini".
=item B<Log> (default: false)
If true PolyGlot will not understand xboard commands.
-=item B<Chess960> (default: false)
-
-Play Chess960 (also called Fischer Random Chess or FRC),
-
=item B<MateScore> (default: 10000)
-Mate score reported to GUI when in xboard mode.
+Mate score reported to GUI when in xboard mode.
=item B<Book> (default: false)
=item B<BookLearn> (default: false)
-Record learning information in the opening book. Naturally this requires
-the opening book to be writable.
+This is a noop.
+
+=item B<BookDepth> (default: 256)
+
+Stop using the book after this number of moves.
+
+=item B<BookTreshold> (default: 5)
+
+Do not play moves with a weight (probability) lower than this (in per mil).
=item B<UseNice> (default: false)
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.
+=item B<STFudge> (default: 20)
+
+PolyGlot will translate "st x" as "go movetime 1000*x-STFudge".
+The rationale is that in the UCI specification the argument of movetime
+is defined as the exact search time whereas the argument of the
+st command is only an upperbound.
+
+=item B<OnlyWbOptions> (default: true)
+
+If true then PolyGlot restricts the options it sends to those that
+are potentially useful for WinBoard.
=back
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.
-=item B<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.
-
-Engines that send options with "Draw" in their name are Rybka and HIARCS.
-
-=item B<WbWorkArounds2> (default: false)
-
-Old version of Winboard clear the engine output window at depth 1. With this
-work around PG will send info lines at depth >=2. This may or may not improve
-the display.
-
=back
=head1 EXAMPLES
+Running the UCI engine "fruit" under xboard 4.3.15 and later (this invokes PolyGlot internally).
+
+ xboard -fcp fruit -fUCI
+
+An explicit command line for using the UCI engine "fruit" with logging enabled (this works also with older versions of xboard).
+
+ xboard -fcp "polyglot -noini -log true -ec fruit"
+
+The equivalent config file would be:
+
+ [PolyGlot]
+ EngineCommand = fruit
+ Log = true
+ [Engine]
+
Compile "games.pgn" into a book "book.bin" retaining all lines of at
most 30 plies.
polyglot epd-test -epd test.epd -max-time 420
-The command line for using the UCI engine "fruit" in a GUI which uses the
-xboard protocol.
-
- polyglot -ec fruit
-
-The equivalent config file:
-
- [PolyGlot]
- EngineCommand = fruit
- [Engine]
-
-
=head1 EXIT STATUS
PolyGlot always returns 0 on exit.
Various enhancements: Fonzy Bleumers<match(at)geenvis.net>
-UCI port: Michel Van den Bergh <michel.vandenbergh(at)uhasselt.be>
+UCI port and implementation of new WB protocol: Michel Van den Bergh
+<michel.vandenbergh(at)uhasselt.be>
+
+
=head1 SEE ALSO