From 037f73ac400afcd812f31f9260e6bf8a0ba7ef53 Mon Sep 17 00:00:00 2001 From: H.G. Muller Date: Thu, 9 Jun 2011 10:20:16 +0200 Subject: [PATCH] version 1.4.67b --- ChangeLog | 2 + README | 44 ++++++++++++++++++++++------------ book.c | 2 +- config.h | 6 ++-- configure | 20 ++++++++-------- configure.ac | 2 +- debian/changelog | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ debian/files | 2 +- main.c | 2 +- polyglot.man | 43 +++++++++++++++++++-------------- polyglot.pod | 3 +- polyglot.spec | 2 +- xboard2uci.c | 2 +- 13 files changed, 144 insertions(+), 55 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7f1d962..41baf84 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,5 @@ +========1.4.67b================= +- Disable "book learning". Polyglot saves learning information but does not use it itself, probably for a reason. I believe the booklearning concept of Polyglot is fundamentally broken. Learning information is engine specific so it should not be saved in the opening book (it might be saved elsewhere). There are other issues as well, such as copyright and the possibility of the proliferation of polluted books. Opening books can be improved with information from games by using the merge command. This is a form of off line learning which is probably much more effective since one has strict control over what kind of information is added to the book. ========1.4.66b================= - Fix a printf 32 vs 64 bit format (crash) bug which manifested itself on windows. ========1.4.65b================= diff --git a/README b/README index 9370479..339c1f4 100644 --- a/README +++ b/README @@ -32,7 +32,8 @@ SYNOPSIS polyglot perft [-fen fen] [-max-depth depth] DESCRIPTION - PolyGlot as adapter and book engine + PolyGlot as adapter and book engine + PolyGlot is a "UCI adapter". It connects a GUI interface (such as XBoard, Winboard, Arena or Chessbase) to a UCI chess engine. @@ -63,7 +64,8 @@ DESCRIPTION NOTE: Not all options are exported, only those that make sense in the given mode. - Book making utilities + Book making utilities + PolyGlot supports the "PolyGlot opening book format". This is the defacto standard non-proprietary opening book format. It is fully documented here @@ -109,12 +111,14 @@ DESCRIPTION Due to the possibility of transpositions this is not a fool proof method. - Epd test mode + 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 arguments specify when to stop the search in any given position. - Perft counts + 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 however much slower than other more dedicated programs. @@ -155,7 +159,8 @@ OPTIONS When invoked as - polyglot make-book + polyglot make-book + PolyGlot supports the following options -pgn (default: "book.pgn") @@ -188,7 +193,8 @@ OPTIONS When invoked as - polyglot merge-book + polyglot merge-book + PolyGlot supports the following options -in1 @@ -206,7 +212,8 @@ OPTIONS When invoked as - polyglot dump-book + polyglot dump-book + PolyGlot supports the following options -bin (default: book.bin) @@ -220,7 +227,8 @@ OPTIONS When invoked as - polyglot info-book + polyglot info-book + PolyGlot supports the following options -bin (default: book.bin) @@ -232,7 +240,8 @@ OPTIONS When invoked as - polyglot epd-test + polyglot epd-test + (possibly with a config file as first argument) PolyGlot supports besides the generic options described above the following additional options. @@ -258,7 +267,8 @@ OPTIONS When invoked as - polyglot perft + polyglot perft + PolyGlot supports the following options -fen (default: starting position) @@ -287,7 +297,8 @@ CONFIG FILE FORMAT "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 + [PolyGlot] section + This section is used by PolyGlot only. The engine is unaware of these options. The list of available options is detailed below. @@ -399,8 +410,7 @@ CONFIG FILE FORMAT move with the highest weight is selected. BookLearn (default: false) - Store learning information in the book (which must be writable). - Currently no engine actually uses this information. + This is a noop. BookDepth (default: 256) Stop using the book after this number of moves. @@ -435,7 +445,8 @@ CONFIG FILE FORMAT If true then PolyGlot restricts the options it sends to those that are potentially useful for WinBoard. - Work arounds + 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). @@ -478,7 +489,8 @@ CONFIG FILE FORMAT to the way kibitzing is implemented, KibitzMove is disabled in that case. - [Engine] section + [Engine] section + This section contains engine UCI options. PolyGlot does not understand them, but sends the information to the engine at startup (converted to UCI form). You can add any UCI option that makes sense to the engine @@ -556,4 +568,4 @@ SEE ALSO - 2010-12-31 POLYGLOT(6) + 2011-06-01 POLYGLOT(6) diff --git a/book.c b/book.c index 49c0962..9c7e04f 100644 --- a/book.c +++ b/book.c @@ -60,7 +60,7 @@ bool book_is_open(){ void book_open(const char file_name[]) { ASSERT(file_name!=NULL); - if(option_get_bool(Option,"BookLearn")){ + if(FALSE && option_get_bool(Option,"BookLearn")){ BookFile = fopen(file_name,"rb+"); }else{ BookFile = fopen(file_name,"rb"); diff --git a/config.h b/config.h index 79415ab..c18275c 100644 --- a/config.h +++ b/config.h @@ -115,13 +115,13 @@ #define PACKAGE_NAME "polyglot" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "polyglot 1.4.65b" +#define PACKAGE_STRING "polyglot 1.4.67b" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "polyglot" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.4.65b" +#define PACKAGE_VERSION "1.4.67b" /* Define to 1 if the C compiler supports function prototypes. */ #define PROTOTYPES 1 @@ -150,7 +150,7 @@ #define TIME_WITH_SYS_TIME 1 /* Version number of package */ -#define VERSION "1.4.65b" +#define VERSION "1.4.67b" /* Define like PROTOTYPES; this can be used by system headers. */ #define __PROTOTYPES 1 diff --git a/configure b/configure index 814d7c8..e3b7cf4 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for polyglot 1.4.66b. +# Generated by GNU Autoconf 2.61 for polyglot 1.4.67b. # # Report bugs to . # @@ -574,8 +574,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='polyglot' PACKAGE_TARNAME='polyglot' -PACKAGE_VERSION='1.4.66b' -PACKAGE_STRING='polyglot 1.4.66b' +PACKAGE_VERSION='1.4.67b' +PACKAGE_STRING='polyglot 1.4.67b' PACKAGE_BUGREPORT='michel.vandenbergh@uhasselt.be' ac_unique_file="mainloop.c" @@ -1207,7 +1207,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures polyglot 1.4.66b to adapt to many kinds of systems. +\`configure' configures polyglot 1.4.67b to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1273,7 +1273,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of polyglot 1.4.66b:";; + short | recursive ) echo "Configuration of polyglot 1.4.67b:";; esac cat <<\_ACEOF @@ -1357,7 +1357,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -polyglot configure 1.4.66b +polyglot configure 1.4.67b generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1371,7 +1371,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by polyglot $as_me 1.4.66b, which was +It was created by polyglot $as_me 1.4.67b, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2061,7 +2061,7 @@ fi # Define the identity of the package. PACKAGE='polyglot' - VERSION='1.4.66b' + VERSION='1.4.67b' cat >>confdefs.h <<_ACEOF @@ -6848,7 +6848,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by polyglot $as_me 1.4.66b, which was +This file was extended by polyglot $as_me 1.4.67b, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6901,7 +6901,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -polyglot config.status 1.4.66b +polyglot config.status 1.4.67b configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index 4c0a867..2d61a3e 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) -AC_INIT([polyglot], [1.4.66b], [michel.vandenbergh@uhasselt.be]) +AC_INIT([polyglot], [1.4.67b], [michel.vandenbergh@uhasselt.be]) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([mainloop.c]) AC_CONFIG_HEADER([config.h]) diff --git a/debian/changelog b/debian/changelog index 3b06a44..a7e2a69 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,72 @@ +polyglot (1.4.67b) unstable; urgency=low + + * Disable "book learning". Polyglot saves learning information but does not use it itself, probably for a reason. I believe the booklearning concept of Polyglot is fundamentally broken. Learning information is engine specific so it should not be saved in the opening book (it might be saved elsewhere). There are other issues as well, such as copyright and the possibility of the proliferation of polluted books. Opening books can be improved with information from games by using the merge command. This is a form of off line learning which is probably much more effective since one has strict control over what kind of information is added to the book. + + + -- Michel Van den Bergh Fri, 8 Apr 2011 21:00:00 +0100 + +polyglot (1.4.66b) unstable; urgency=low + + * Fix a printf 32 vs 64 bit format (crash) bug which manifested itself on windows. + + -- Michel Van den Bergh Fri, 8 Apr 2011 21:00:00 +0100 + +polyglot (1.4.65b) unstable; urgency=low + + * Bugfix: dump-book with -color black generated the file book_white.txt. + + -- Michel Van den Bergh Fri, 1 Apr 2011 21:00:00 +0100 + +polyglot (1.4.64b) unstable; urgency=low + + * Reduce movetime in the implementation of the fixed time per move command (st), to account for differences in the wording of the protocols. + + -- Michel Van den Bergh Fri, 31 Dec 2010 21:00:00 +0100 + +polyglot (1.4.63b) unstable; urgency=low + + * Give ponder move as hint. + * Support for egtpath "gaviota" (this is a bit hacky now). + + -- Michel Van den Bergh Sat, 4 Dec 2010 21:00:00 +0100 + +polyglot (1.4.62b) unstable; urgency=low + + * StringSize was not everywhere the same in Polyglot. This could lead to a buffer overflow in case of very long PV's. + + -- Michel Van den Bergh Sat, 20 Nov 2010 21:00:00 +0100 + +polyglot (1.4.61b) unstable; urgency=low + + * uci_isready replaced by uci_isready_sync. Polyglot should not send commands to the engine while it is syncing. + + -- Michel Van den Bergh Sat, 2 Oct 2010 21:00:00 +0100 + +polyglot (1.4.60b) unstable; urgency=low + + * The result string after an illegal move now shows the actual attempted move. + + -- Michel Van den Bergh Fri, 1 Oct 2010 21:00:00 +0100 + +polyglot (1.4.59b) unstable; urgency=low + + * Bugfix: the changes in 1.4.57b created a regression where the input buffer of polyglot could overflow with engines producing lots of output very fast. + + -- Michel Van den Bergh Wed, 29 Sep 2010 21:00:00 +0100 + +polyglot (1.4.58b) unstable; urgency=low + + * Implementation of BookDepth in UCI mode. + * Small corrections to the manpage. + + -- Michel Van den Bergh Wed, 25 Apr 2010 21:00:00 +0100 + +polyglot (1.4.57b) unstable; urgency=low + + * First attempt at killing engines that do not react to "quit". + + -- Michel Van den Bergh Wed, 25 Apr 2010 21:00:00 +0100 + polyglot (1.4.56b) unstable; urgency=low * Better handling of non-existing engine command. diff --git a/debian/files b/debian/files index ddf3988..da3af81 100644 --- a/debian/files +++ b/debian/files @@ -1 +1 @@ -polyglot_1.4.56b_i386.deb games extra +polyglot_1.4.65b_amd64.deb games extra diff --git a/main.c b/main.c index ae88cb0..b73c630 100644 --- a/main.c +++ b/main.c @@ -39,7 +39,7 @@ // constants -static const char * const Version = "1.4.66b"; +static const char * const Version = "1.4.67b"; static const char * const HelpMessage = "\ SYNTAX\n\ * polyglot [configfile] [-noini] [-ec engine] [-ed enginedirectory] [-en enginename] [-log true/false] [-lf logfile] [-pg =]* [-uci =]*\n\ diff --git a/polyglot.man b/polyglot.man index 32022f1..14ce289 100644 --- a/polyglot.man +++ b/polyglot.man @@ -1,7 +1,15 @@ -.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.05) +.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp @@ -45,7 +53,7 @@ .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for -.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ @@ -124,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "POLYGLOT 6" -.TH POLYGLOT 6 "2010-12-31" "" "" +.TH POLYGLOT 6 "2011-06-01" "" "" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -152,7 +160,7 @@ polyglot [configfile] epd-test [engineoptions] [\-epd inputfile] [\-min\-depth d polyglot perft [\-fen fen] [\-max\-depth depth] .SH "DESCRIPTION" .IX Header "DESCRIPTION" -.SS "PolyGlot as adapter and book engine" +.Sh "PolyGlot as adapter and book engine" .IX Subsection "PolyGlot as adapter and book engine" PolyGlot is a \*(L"\s-1UCI\s0 adapter\*(R". It connects a \s-1GUI\s0 interface (such as XBoard, Winboard, Arena or Chessbase) to a \s-1UCI\s0 chess engine. @@ -183,7 +191,7 @@ by \*(L"Polyglot\*(R". This makes it easy to filter them in the \s-1GUI\s0. .PP \&\s-1NOTE:\s0 Not all options are exported, only those that make sense in the given mode. -.SS "Book making utilities" +.Sh "Book making utilities" .IX Subsection "Book making utilities" PolyGlot supports the \*(L"PolyGlot opening book format\*(R". This is the defacto standard non-proprietary opening book format. It is fully documented @@ -228,12 +236,12 @@ it is difficult to identify the latter. If invoked with \*(L"\-exact\*(R" the utility info-book will attempt to count the isolated positions which require a player to make a non-book move when a book move is available. Due to the possibility of transpositions this is not a fool proof method. -.SS "Epd test mode" +.Sh "Epd test mode" .IX Subsection "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 arguments specify when to stop the search in any given position. -.SS "Perft counts" +.Sh "Perft counts" .IX Subsection "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 @@ -280,7 +288,7 @@ This is an alias for \-pg \*(L"LogFile=\*(R". This is an alias for \-pg \*(L"OnlyWbOptions=\*(R". .PP When invoked as -.SS "polyglot make-book" +.Sh "polyglot make-book" .IX Subsection "polyglot make-book" PolyGlot supports the following options .ie n .IP "\fB\-pgn\fR (default: ""book.pgn"")" 4 @@ -315,7 +323,7 @@ equal probability. .PP When invoked as -.SS "polyglot merge-book" +.Sh "polyglot merge-book" .IX Subsection "polyglot merge-book" PolyGlot supports the following options .IP "\fB\-in1\fR" 4 @@ -334,7 +342,7 @@ moves and weights from \*(L"in1\*(R" will be retained in \*(L"out\*(R". .PP When invoked as -.SS "polyglot dump-book" +.Sh "polyglot dump-book" .IX Subsection "polyglot dump-book" PolyGlot supports the following options .IP "\fB\-bin\fR (default: book.bin)" 4 @@ -349,7 +357,7 @@ The name of the output file. .PP When invoked as -.SS "polyglot info-book" +.Sh "polyglot info-book" .IX Subsection "polyglot info-book" PolyGlot supports the following options .IP "\fB\-bin\fR (default: book.bin)" 4 @@ -361,7 +369,7 @@ Attempt to count the provably unreachable positions among the isolated ones. Note that this takes a very long time. .PP When invoked as -.SS "polyglot epd-test" +.Sh "polyglot epd-test" .IX Subsection "polyglot epd-test" (possibly with a config file as first argument) PolyGlot supports besides the generic options described above the following additional @@ -386,7 +394,7 @@ Minimal search depth when the search is stopped using \*(L"\-depth\-delta\*(R". Minimal search time when the search is stopped using \*(L"\-depth\-delta\*(R". .PP When invoked as -.SS "polyglot perft" +.Sh "polyglot perft" .IX Subsection "polyglot perft" PolyGlot supports the following options @@ -419,7 +427,7 @@ PolyGlot (these are ';#[]=\e') you should quote them by preceding them with '\e'. \*(L"Quoting\*(R" other characters in this way has no effect. In particular the use of '\e' as a path separator in windows should normally not affected. -.SS "[PolyGlot] section" +.Sh "[PolyGlot] section" .IX Subsection "[PolyGlot] section" This section is used by PolyGlot only. The engine is unaware of these options. The list of available options is detailed below. @@ -533,8 +541,7 @@ 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)" -Store learning information in the book (which must be writable). Currently -no engine actually uses this information. +This is a noop. .IP "\fBBookDepth\fR (default: 256)" 4 .IX Item "BookDepth (default: 256)" Stop using the book after this number of moves. @@ -566,7 +573,7 @@ st command is only an upperbound. .IX Item "OnlyWbOptions (default: true)" If true then PolyGlot restricts the options it sends to those that are potentially useful for WinBoard. -.SS "Work arounds" +.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 @@ -607,7 +614,7 @@ 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. -.SS "[Engine] section" +.Sh "[Engine] section" .IX Subsection "[Engine] section" This section contains engine \s-1UCI\s0 options. PolyGlot does not understand them, but sends the information to the engine at startup diff --git a/polyglot.pod b/polyglot.pod index ee37df6..9ebf8bf 100644 --- a/polyglot.pod +++ b/polyglot.pod @@ -493,8 +493,7 @@ with the highest weight is selected. =item B (default: false) -Store learning information in the book (which must be writable). Currently -no engine actually uses this information. +This is a noop. =item B (default: 256) diff --git a/polyglot.spec b/polyglot.spec index 5d4f0b7..83980fc 100644 --- a/polyglot.spec +++ b/polyglot.spec @@ -1,6 +1,6 @@ Summary: A Winboard protocol to UCI protocol adapter Name: polyglot -Version: 1.4.66b +Version: 1.4.67b Release: 1 License: GPL Group: Amusement/Games diff --git a/xboard2uci.c b/xboard2uci.c index d5dd746..762f1c8 100644 --- a/xboard2uci.c +++ b/xboard2uci.c @@ -443,7 +443,7 @@ void xboard2uci_gui_step(char string[]) { // book learning - if (option_get_bool(Option,"Book") && + if (FALSE && option_get_bool(Option,"Book") && option_get_bool(Option,"BookLearn")) { if (FALSE) { -- 1.7.0.4