X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=README;h=339c1f49f6ee27f74ed2a656b4f725558600d48b;hb=037f73ac400afcd812f31f9260e6bf8a0ba7ef53;hp=58c4006b59d2f30950c80366053f78e94c9d2604;hpb=5cd5185613348b13625e257efcd7b2f11ca85276;p=polyglot.git diff --git a/README b/README index 58c4006..339c1f4 100644 --- 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 =]* [-uci + =]* 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 =. This option + will set the Polyglot option to . + + -uci + The argument is a string of the form =. This option + will set the engine option to . + + -ec This is an alias for -pg "EngineCommand=" + + -ed This is an alias for -pg "EngineDir=" + + -en This is an alias for -pg "EngineName=" - polyglot -ec engine + -log (default: false) + This is an alias for -pg "Log=" - 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=". + + -wb (default: "true") + This is an alias for -pg "OnlyWbOptions=". 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 - UCI port: Michel Van den Bergh + UCI port and implementation of new WB protocol: Michel Van den Bergh + SEE ALSO xboard(6) - 2009-01-16 POLYGLOT(6) + 2011-06-01 POLYGLOT(6)