version 1.4.67b
[polyglot.git] / README
diff --git a/README b/README
index 58c4006..339c1f4 100644 (file)
--- a/README
+++ b/README
@@ -5,28 +5,29 @@ POLYGLOT(6)                                                        POLYGLOT(6)
 NAME
        PolyGlot -  Winboard protocol to UCI protocol adapter
                 -  book engine for Polyglot books
-                -  a collection of utilities for creating and analyzing open-
-       ing books
+                -  a collection of utilities for creating and analyzing
+       opening books
                 -  a utility for analyzing epd files
                 -  a perft counter
 
 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] [-uni-
-       form]
+       [-min-game games] [-min-score score] [-only-white] [-only-black]
+       [-uniform]
 
        polyglot merge-book -in1 inputfile1 -in2 inputfile2 [-out outputfile]
 
        polyglot info-book [-bin inputfile] [-exact]
 
-       polyglot dumb-book [-bin inputfile] -color color [-out outputfile]
+       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]
 
@@ -39,9 +40,9 @@ DESCRIPTION
        By specifying an opening book (in PolyGlot book format) chess engines
        can transparently use such books.
 
-       PolyGlot understands the two main GUI protocols: UCI and xboard. Nor-
-       mally the protocol will be auto detected but this can be overridden in
-       the configuration file.
+       PolyGlot understands the two main GUI protocols: UCI and xboard.
+       Normally the protocol will be auto detected but this can be overridden
+       in the configuration file.
 
        In xboard mode PolyGlot fully translates between the xboard and UCI
        protocols.  In addition it tries to solve known problems with other
@@ -52,9 +53,9 @@ DESCRIPTION
        engine and vice versa, except that it will play book moves on behalf of
        the engine when the occasion arises.
 
-       The engine options are exported as UCI options in UCI mode and as "fea-
-       ture option=" commands in xboard mode. The latter form an extension of
-       the xboard protocol as defined by H.G. Muller.
+       The engine options are exported as UCI options in UCI mode and as
+       "feature option=" commands in xboard mode. The latter form an extension
+       of the xboard protocol as defined by H.G. Muller.
 
        Options which normally appear in the [PolyGlot] section of the config
        file (see below) are exported as options with their name prefixed by
@@ -66,8 +67,8 @@ DESCRIPTION
        Book making utilities
 
        PolyGlot supports the "PolyGlot opening book format". This is the
-       defacto standard non-proprietary opening book format. It is fully docu-
-       mented here
+       defacto standard non-proprietary opening book format. It is fully
+       documented here
 
        http://alpha.uhasselt.be/Research/Algebra/Toga/book_format.html
 
@@ -80,13 +81,13 @@ DESCRIPTION
        .abk format are undocumented and proprietary. They can only be used by
        their own GUIs.
 
-       PolyGlot can compile a pgn file into a binary PolyGlot book and fur-
-       thermore it can merge two such binary books into a third one.
+       PolyGlot can compile a pgn file into a binary PolyGlot book and
+       furthermore it can merge two such binary books into a third one.
 
        PolyGlot can also extract some useful information from PolyGlot books.
        The utility "dump-book" dumps the "lines" in a book for a given color.
-       By definition a line is a sequence of moves (from the starting posi-
-       tion) in which the given color makes only book moves and the other
+       By definition a line is a sequence of moves (from the starting
+       position) in which the given color makes only book moves and the other
        color makes arbitrary moves (i.e. not necessarily book moves).
 
        Since a PolyGlot book is built up from positions and not lines there
@@ -113,27 +114,48 @@ DESCRIPTION
        Epd test mode
 
        In epd test mode, PolyGlot will search positions in an epd file and
-       record the number of times the right best move was found.  The argu-
-       ments specify when to stop the search in any given position.
+       record the number of times the right best move was found.  The
+       arguments specify when to stop the search in any given position.
 
        Perft counts
 
        A perft count is the number of legal move sequence in a given position
-       up to a given depth. PolyGlot can perform such perft counts. It is how-
-       ever much slower than other more dedicated programs.
+       up to a given depth. PolyGlot can perform such perft counts. It is
+       however much slower than other more dedicated programs.
 
 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.
+
+       -noini
+           Do not use a config file, even if one was specified on the command
+           line.
+
+       -pg The argument is a string of the form <name>=<value>. This option
+           will set the Polyglot option <name> to <value>.
+
+       -uci
+           The argument is a string of the form <name>=<value>. This option
+           will set the engine option <name> to <value>.
+
+       -ec This is an alias for -pg "EngineCommand=<value>"
+
+       -ed This is an alias for -pg "EngineDir=<value>"
+
+       -en This is an alias for -pg "EngineName=<value>"
 
-       polyglot -ec engine
+       -log (default: false)
+           This is an alias for -pg "Log=<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.
+       -lf (default: "polyglot.log")
+           This is an alias for -pg "LogFile=<value>".
+
+       -wb (default: "true")
+           This is an alias for -pg "OnlyWbOptions=<value>".
 
        When invoked as
 
@@ -213,15 +235,16 @@ OPTIONS
            Input file in PolyGlot book format.
 
        -exact
-           Attempt to count the provably unreachable positions among the iso-
-           lated ones.  Note that this takes a very long time.
+           Attempt to count the provably unreachable positions among the
+           isolated ones.  Note that this takes a very long time.
 
        When invoked as
 
        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.
 
        -max-depth (default: 63)
            Unconditionally stop the search when this depth has been reached.
@@ -268,8 +291,11 @@ CONFIG FILE FORMAT
 
        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.
 
        [PolyGlot] section
 
@@ -290,7 +316,18 @@ CONFIG FILE FORMAT
        EngineCommand
            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.
+
+       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".
 
        Log (default: false)
            Whether PolyGlot should log all transactions with the interface and
@@ -317,13 +354,16 @@ CONFIG FILE FORMAT
            move are ignored.
 
        ResignScore (default: 600)
-           This is the score in centipawns that will trigger resign "count-
-           ing".
+           This is the score in centipawns that will trigger resign
+           "counting".
 
        ShowPonder (default: true)
            Show search information during engine pondering.  Turning this off
            might be better for interactive use in some interfaces.
 
+       ScoreWhite (default: true)
+           Report score from white's point of view in xboard mode.
+
        KibitzMove (default: false)
            Whether to kibitz when playing a move.
 
@@ -332,20 +372,21 @@ CONFIG FILE FORMAT
            move).
 
        KibitzCommand (default: "tellall")
-           xboard command to use for kibitzing, normally "tellall" for kibitz-
-           ing or "tellothers" for whispering.
+           xboard command to use for kibitzing, normally "tellall" for
+           kibitzing or "tellothers" for whispering.
 
        KibitzDelay (default: 5)
            How many seconds to wait before starting kibitzing.  This has an
            effect only if "KibitzPV" is selected, move kibitzes are always
            sent regardless of the delay.
 
+       KibitzInterval (default: 0)
+           This is another form of throttling. PolyGlot will usually wait this
+           many seconds before doing the next kibitz.
+
        UCI (default: false)
            If true PolyGlot will not understand xboard commands.
 
-       Chess960 (default: false)
-           Play Chess960 (also called Fischer Random Chess or FRC),
-
        MateScore (default: 10000)
            Mate score reported to GUI when in xboard mode.
 
@@ -361,16 +402,22 @@ CONFIG FILE FORMAT
        BookFile (default: book.bin)
            The name of the (binary) book file.  Note that PolyGlot will look
            for it in the directory it was launched from, not in the engine
-           directory.  Of course, full path can be used in which case the cur-
-           rent directory does not matter.
+           directory.  Of course, full path can be used in which case the
+           current directory does not matter.
 
        BookRandom (default: true)
            Select moves according to their weights in the book. If false the
            move with the highest weight is selected.
 
        BookLearn (default: false)
-           Record learning information in the opening book. Naturally this
-           requires the opening book to be writable.
+           This is a noop.
+
+       BookDepth (default: 256)
+           Stop using the book after this number of moves.
+
+       BookTreshold (default: 5)
+           Do not play moves with a weight (probability) lower than this (in
+           per mil).
 
        UseNice (default: false)
            Run the engine at nice level 5, or "NiceValue" if it set.  On some
@@ -388,16 +435,25 @@ CONFIG FILE FORMAT
            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.
 
+       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.
+
+       OnlyWbOptions (default: true)
+           If true then PolyGlot restricts the options it sends to those that
+           are potentially useful for WinBoard.
+
        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 cor-
-       rect for bug-free software.
+       various software (not just engines).
 
-       IMPORTANT: Any of these work arounds might be removed in future ver-
-       sions of PolyGlot.  You are strongly recommended to contact the author
-       of faulty software and truly fix the problem.
+       IMPORTANT: Any of these work arounds might be removed in future
+       versions of PolyGlot.  You are strongly recommended to contact the
+       author of faulty software and truly fix the problem.
 
        PolyGlot supports the following work arounds:
 
@@ -408,16 +464,16 @@ CONFIG FILE FORMAT
        CanPonder (default: false)
            PolyGlot now conforms to the documented UCI behaviour: the engine
            will be allowed to ponder only if it (the engine) declares the
-           "Ponder" UCI option.  However some engines which can actually pon-
-           der do not declare the option.  This work around lets PolyGlot know
-           that they can ponder.
+           "Ponder" UCI option.  However some engines which can actually
+           ponder do not declare the option.  This work around lets PolyGlot
+           know that they can ponder.
 
        SyncStop (default: false)
-           When a ponder miss occurs, Polyglot interrupts the engine and IMME-
-           DIATELY launches a new search.  While there should be no problem
-           with this, some engines seem confused and corrupt their search
-           board.  "SyncStop" forces PolyGlot to wait for the (now useless)
-           ponder search to finish before launching the new search.
+           When a ponder miss occurs, Polyglot interrupts the engine and
+           IMMEDIATELY launches a new search.  While there should be no
+           problem with this, some engines seem confused and corrupt their
+           search board.  "SyncStop" forces PolyGlot to wait for the (now
+           useless) ponder search to finish before launching the new search.
 
        PromoteWorkAround (default: false)
            Some engines do not specify a promotion piece, e.g. they send
@@ -427,9 +483,11 @@ CONFIG FILE FORMAT
        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.
 
        [Engine] section
 
@@ -438,8 +496,8 @@ CONFIG FILE FORMAT
        UCI form).  You can add any UCI option that makes sense to the engine
        (not just the common options about hash-table size and tablebases).
 
-       NOTE: use INI syntax, not UCI.  For example "OwnBook = true" is cor-
-       rect.  It will be replaced by PolyGlot with "setoption name OwnBook
+       NOTE: use INI syntax, not UCI.  For example "OwnBook = true" is
+       correct.  It will be replaced by PolyGlot with "setoption name OwnBook
        value true" at engine startup.
 
        Standard UCI options are
@@ -456,6 +514,23 @@ CONFIG FILE FORMAT
        GUI or launch the engine in a console and type "uci".
 
 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.
 
@@ -474,17 +549,6 @@ EXAMPLES
 
            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]
-
 EXIT STATUS
        PolyGlot always returns 0 on exit.
 
@@ -496,11 +560,12 @@ AUTHORS
 
        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>
 
 SEE ALSO
        xboard(6)
 
 
 
-                                  2009-01-16                       POLYGLOT(6)
+                                  2011-06-01                       POLYGLOT(6)