Bump version to 4.0
[uci2wb.git] / README.txt
index 06b8772..3a09133 100644 (file)
@@ -16,6 +16,22 @@ and just passes on the moves and position FENs as it receives them from engine o
 As this can be done without any knowledge of the game rules, or even of the board size, \r
 such a dumb adapter can in principle be used for any variant. To use it for UCI protocol\r
 (both the Chess or Xiangqi dialects), use it without the -s flag (or with a -c flag).\r
+  As of version 2.0 UCI2WB also supports the UCCI protocol for Xiangqi, for which it was\r
+made slightly less dumb: in UCCI mode it keeps track of the board position on a (Xiangqi)\r
+board, so it can recognize capture moves, and send only the moves after it (with an\r
+appropriate FEN to start them from).\r
+  The general syntax of the UCI2WB command is:\r
+\r
+UCI2WB [debug] [-var VARIANTLIST] [-s|-c|-x] ENGINE.exe [ENGINEFOLDER]\r
+\r
+Presence of the 'debug' argument causes UCI2WB to report everything it receives from the engine,\r
+as well as the 'position' and 'go' commands sent to it, as debug output (prefixed with '#')\r
+to the GUI. This has the same effect as switching the option 'UCI2WB debug output' on,\r
+except that it forces the option to be on from the very beginning, so that the engine\r
+startup will also be reported.\r
+  The '-var' option overrules the list of variants UCI2WB says it supports with the given list,\r
+like 'feature variants="VARIANTLIST"'.\r
+\r
 \r
 This package includes the source code. To compile on Windows under Cygwin, use the commands\r
 \r
@@ -34,6 +50,90 @@ H.G.Muller
 \r
 Change log:\r
 \r
+8/12/2018 4.0\r
+Complete redesign of the internal logic, to make interruption of thinking\r
+actually work. The engine thread is made responsible for parsing the GUI\r
+commands that require the engine to be idle. These commands are passed to\r
+it from the GUI thread through an internal command queue. The engine thread\r
+can peek in this queue when a search terminates and it enters the idle or\r
+pondering state. It only goes reading the ponder output after all queued\r
+commands are processed. This way the GUI thread is sensitive to input all\r
+the time, and can instantly handle all commands by either processing those\r
+that can be done during search, and queueing the others. In the latter case\r
+it can abort an ongoing search to divert the attention of the engine thread\r
+back to the command queue.\r
+ Other changes are:\r
+Added option to force the engine to ponder if force mode (for OTB tournaments).\r
+Produce a compliant error message for unknown commands.\r
+Fix time increment in ponder-on games (which was subtracted rather than added).\r
+Fix periodic updates, to include move and correct move counts.\r
+Set UCCI newgame option after initial isready handshake rather than before it.\r
+Suppress spurious sending of 'uxinewgame' in UCCI mode.\r
+Suppress 'setup' command in the standard variants 'suicide' and 'losers'.\r
+Add support for robbobases and Scorpio bitbases as EGT flavors.\r
+Support extended UCI info-string-variant command that can set board size.\r
+Assume engines with UCI_Chess960 option but no UCI_Variants play only Chess and\r
+Chess960, and not xiangqi or shogi.\r
+\r
+24/12/2016 3.0\r
+Implement UCI_AnalyseMode option\r
+Support egtpath command for Nalimov, Gaviota and Syzygy\r
+Allow ?, quit, force and result commands to terminate thinking\r
+Stop search during setoption commands, or buffer those until engine is done thinking\r
+Explicitly report when engine dies, through GUI popup (tellusererror)\r
+Make sure reporting of mated-in-0 score causes resign, even without PV\r
+Fix eclipsing of -var option with engines that have UCI_Chess960 option\r
+Fix empty default of string options\r
+\r
+8/11/2016 2.3\r
+Implement handling of 'UCI_Variant' option for variant announcement and selection\r
+Pass 'info string variant' line as 'setup' command to allow engine-defined variants\r
+Set 'UCI_Opponent' option in accordance with CECP 'name' and 'computer' commands\r
+Fix option setting during analysis (MultiPV!)\r
+\r
+22/11/2016 2.2\r
+Use USI gameover command to relay game result\r
+Handle USI win claims\r
+Correct wtime/btime for byoyomi\r
+\r
+7/11/2016 2.1\r
+Make Linux version SIGTERM-proof\r
+Recognize forward Pawn pushes as irreversible in UCCI\r
+Block input from GUI during thinking\r
+Use uxinewgame\r
+Implement support for pre-standard UCI Chess960 engines ('Arena960 dialect')\r
+Fix hash-size setting in UCCI\r
+Combine name and version when engine gives them in separate 'id' commands\r
+Fake time and node count for engines that do not report it\r
+Add interactive options for byoyomi work-around\r
+\r
+28/10/2014 2.0\r
+Implement UCCI support\r
+\r
+4/12/2012 1.10\r
+Implement pause / resume commands\r
+\r
+9/5/2012\r
+Fix bug in converting shogi moves, introduced in v1.8\r
+\r
+19/4/2012 1.9\r
+Remove S-Chess move translation, to parallel change in UCI S-Chess 'standard'\r
+Implement WB exclude feature\r
+\r
+17/4/2012 1.8\r
+Wait for uciok before processing GUI commands for setting options\r
+Implement move translations required for variant seirawan\r
+Make supported-variants string configurable from command line.\r
+\r
+15/4/2012 v1.7\r
+Take 30ms safety margin in translating st command to movetime\r
+\r
+14/1/2011 v1.6\r
+Replaced all polling by blocking synchronization (through pipes).\r
+Implemented ping (using isready/readyok)\r
+Made sending of debug info to GUI subject to option feature / command-line argument.\r
+Fixed myname feature to handle names containing spaces.\r
+\r
 14/10/2010\r
 Port v1.5 to Linux\r
 \r