GNU CHESS HISTORY (#include "../version.h") January 8, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Changed the transpositon table to allow 66536 positions per player. This means a 1.3 Mbyte hash table. Introduced simple rehashing. And also made setting ttable 0 exclude all transposition code from gnuchess (for machines with very little memory). January 3, 1990 -- Tom Vijlbrief (tnosoes!tom@nluug.n) Contributed code to fix undo of promotions. And a bugfix RMBLY was to small. January 27, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Fixed nuxdsp.c to work with my changes (Saved games format) January 26, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Verified that the underpromotion routines works. Found and fixed the bug that caused gnuchess to report mate and draw prematurely. January 25, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Received the underpromotion additions from jhol@tolsun.oulu.fi Made some optimizations in trapped and KingScan. Added more comments on how to improve the search. Added info on usage of the array Tree in post mode. Changed the index in the transposition table to unsigned short to allow a hash table of size 65536. January 11, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Formatted gnuchess according to GNU standards with indent. January 9, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Inserted a missing comma in KTHRT. Removed mvstr1[5],mvstr2[5] from gnuchess.c, they are only used in the user-interface routines uxdsp.c nondsp.c anyway. Rewrote algbr to generate move strings for underpromotion. (ph8k or h7h8k) Some optimizations in CaptureList. Changed row, column and locn to macros. Made memset default and introduced a switch NOMEMSET for computers without memset or where memset is a speed penality. I tested this on: Sparc - no change, DECstation - no change and Sun3/60 - 4% speed improvment. Changed + to | in some bit-field manipulations. Fixed the castle-with-moved-rook-bug, removed kingmoved and introduced an array Mvboard to keep track on how many times we have moved from a particular square. Fixed the check for zero division in Time controls. Added BINDIR and LIBDIR in the Makefile to set where gnuchess and gnuchess.book gets installed. All I have to do now is to test if all this works (-: February 3, 1990 -- Tom Vijlbrief Noticed an error in the rook mobility bonus. RMBLTY array was indexed 0 to 14, but had only 14 members. Added final member. January 1, 1990 -- Stuart Cracraft (cracraft @wheaties.ai.mit.edu) Some special openings were inserted and some taken out. A small change was made to allow the program to detect draws earlier in the tree (via Stanback). Thinking on opponent's time is now working in nondsp.c. For some reason it had been deactivated. Tested GNU Chess 1.55 with with Chesstool on a SUN. Match vs. Fidelity Mach 3 (USCF 2265) resulted in 7-3 score for GNU on a Sparcstation giving a 2325-2335 performance result. January 1, 1990 -- Hes @log-se.sv He contributed faster move generator routines. August 1, 1989 -- Jay Scott He proofread the opening book and made corrections. June 9, 1989 -- Tim Radzy (unet!nplab4!radz@ames.arc.nasa.gov) He fixed a bug in xchess/board.c. In a post-game new-game situation, castling wouldn't be permitted under circumstances. Tim made it possible to castle again. May 12, 1989 -- Joe Garbarini (garbarini%kegger@circus.llnl.gov) Recommended changes to documentation vis a vis chesstool usage. May 5, 1989 -- Jouko Holopainen (jhol@tolsun.oulu.fi) Wrote code to support underpromotion. Changed interface to accept ECO/Informator style moves. April 30, 1989 -- Various GNU contributors setlinebuf() modification for xchess/chesstool. check for zero division in time printout. January 17, 1989 -- Anders Thulin Provided extensive addition to the opening book for his favorite opening the Vienna Game. This was drawn from ECO. November 23, 1988 -- Stuart Cracraft Installed new version of Xchess that is better debugged, works on the next version of X. Thanks to Wayne Christopher and Arturo Perez. August 28, 1988 -- Stuart Cracraft Removed a sacrifice line from the Giuoco Piano entry in the opening book; the program didn't seem to like the positions it got from this line. December 30, 1987 -- John Stanback Wrote a short blurb on the heuristics contained in GNU Chess. It resides in the subdirectory DOCUMENTATION as the file HEURISTICS. December 17, 1987 -- John Stanback Modified criteria for positional evaluation in quiescence search to include positions in which the estimated score lies within the alpha-beta window; fixed a bug in the king proximity to pawns heuristic; fixed a bug involving passed pawn heuristics; December 16, 1987 -- Stuart Cracraft Added automatic 'list' upon exit (both in display, non-display, and chesstool mode); command-line setting of tournament time controls bug fixed. December 14, 1987 -- John Stanback GNU defeated the commercial product 'Fidelity Excellence' 5.5-4.5 in a 10-game match. It was running at about 500 nodes per second (typical of its speed on a VAX 8650) and this would indicate its strength would be about USCF 1875-1900. December 4, 1987 -- John Stanback Man page added. Command line arguments now specify regular clock settings if so desired (useful for SUN players). Thinking on opponent's time is now disabled by default. Estimated rating is 1850 at 500 nodes per second. October 20, 1987 -- Stuart Cracraft Fixed GNU/SUN interaction. Chesstool and its features now seem to fully work. October 5, 1987 -- Ken Thompson GNU beat Belle (actually drew due to a bug, but Ken kept GNU playing through to the win) while running on a Cray XMP-48. In this 3-1 time handicap game Belle outsearched Cray GNU by 10-1 (even with the handicap). September 26, 1987 -- John Stanback at HP Hash table functioning. Thinking on opponent's time functioning. August 20, 1987 -- Mike Meyer at Berkeley Mike ran GNU Chess on a Cray 1 supercomputer. The system was very heavily loaded, so the program was not as speedy as with the Cray below. August 16, 1987 -- David Goldberg at SUN He added "chesstool" support so that this version of GNU Chess can run under the display manager "chesstool". August 15, 1987 -- John Stanback at HP Hash tables, more heuristics, a modified search which is more efficient. He also discovered a bug in the piece-exchanger. This would cause the program to exchange pieces suboptimally. With this fix, the program should play much more strongly. August 13, 1987 -- Ken Thompson at Bell Labs Ken ran GNU Chess on a Cray XMP supercomputer (among other processors). The program got about 3000-4000 chess positions per second which is comprable to today's fastest bit-slice commercial machines. Also, he had GNU Chess play two games against Belle. July 19, 1987 -- Jay Scott & John Stanback Many positional heuristics have been added. July 18, 1987 -- Stuart Cracraft Improvements have been made to the opening book. It is mostly an MCO book, containing major variations from many of the major openings and particularly in-depth on Sicilian. May 11, 1987 -- John Stanback at HP He donated his chess program, a fairly mature and strong program. May 1, 1987 -- Stuart Cracraft He added several bug fixes various people had reported. He also changed makemove() so that the calling syntax is makemove(movelist,index,board) rather than makemove(move,board). Having the latter tickled a bug in at least one manufacturer's C-compiler, so rather than write fancy code, we simplified it. April 25, 1987-- Jim Aspnes at MIT He added all sorts of useful capabilities, including positional evaluation in the tree search using a table-driven algorithm, modifying transposition table code in order to work properly, though it doesn't improve speed too much, checkmates/stalemates detected in the search, en passant captures allowed, detect repeated positions, iterative deepening, quicker quiescence search, tournament time controls, sqattacked sped up by a factor of 4, compile-time debugging options. January 2, 1987 -- Stuart Cracraft He added a few more Tal games to the collection. January 2, 1987 -- Jim Aspnes at MIT He contributed MCO variations for the Catalan, Queen's Indian, and Reti openings. December 29, 1986 -- Jim Aspnes at MIT He contributed all MCO variations of the Najdorf to the opening book. He also contributed a LISP macro (written in GNU Emacs Lisp) to convert xchess game formats to GNU Chess opening book format. December 14, 1986 -- Ken Thompson at Bell Labs He contributed almost 200 games by Tal to our collection of Tal-games, bringing the total number of Tal positions in the book to 10,692. Total book positions now 13,207. These reside in bookin, bookin.bdg, bookin.tal. Note that presently, only bookin and bookin.tal can be used. The new Tal positions came in a slightly different format, which we have chosen to adopt as our standard format. All book games in bookin and bookin.bdg will gradually change into the new standard format. December 11, 1986 -- Stuart Cracraft Added "averages" for node-count per move, cpu per move, rate per move to list_history and write_history. New version of Xchess installed. Started typing in Tal games into "bookin.tal". Added "total book positions" printout to "book" and "enter" statistics printout. December 10, 1986 -- Stuart Cracraft Implemented aspiration search in normal alpha-beta search. Speedups of 3% to 40% have been noticed in most positions. Occasionally a slower search will result, but it is thought these are worth the usual speedups. December 9, 1986 -- Stuart Cracraft Fixed minor bug in write_history() Added another Tal game, 2nd game of 1st world championship match with Botvinnik, a Benoni. December 9, 1986 -- Stuart Cracraft Enhanced parallelism. All parallel processors now communicate via a shared data file and are kept running (in idle loops watching the shared data file). This saves us a few seconds on each move since the 'rsh' need not be invoked more than once (at the beginning). Since the shared data file is now implemented, we will next work towards a "parallel anarchy" in which any processor can use any other processor in order to reduce its search. The current scheme with the program being only as fast as its slowest processor, is quite inefficient. December 1, 1986 -- Jim Aspnes at MIT Added a couple of Master games from Modern Chess Openings 12 (a Fischer game, and a Matanovic game). November 30, 1986 -- Stuart Cracraft Added parallelism. Can now handle multiple processors (sharing same disk). Later we will add the capability to use processors not sharing the same disk. Modified README and MAN-PAGE. November 26, 1986 -- Stuart Cracraft Fixed a few bugs in book-mailing mechanism. Fixed a bug regarding situations where only one move is available. Fixed a bug in read_history() that caused Black queenside castles to be mishandled. November 25, 1986 -- Stuart Cracraft Added two pawn heuristics. Reward pawns moving into a phalanx of pawns. A phalanx is two or more horizontally-connected pawns. Likewise, penalize pawns leaving a phalanx of pawns. The penalty for leaving is a little more than the reward for entering. November 24, 1986 -- Stuart Cracraft A user reported an unbelievable bug. Investigation of this bug led to the discovery that GNU Chess was not picking the move judged best by the tree search in all cases. This resulted in the bug showing itself which further showed that the program was selecting an inferior move. This may result in an improvement to the program's play. November 24, 1986 -- Stuart Cracraft Added two heuristics. Penalize king moves if the king hasn't castled yet. Also, penalize pawn moves which produce doubled pawns. Should probably have something for isolated pawns too. November 23, 1986 -- Wayne Christopher at Berkeley New version of X chess display front-end. Fixed bugs include multiple pieces, runs on SUNS & Bobcats, loads saved games. November 23, 1986 -- Stuart Cracraft Cleaned up some minor bugs regarding history. Added "Illegal command" error message at Wayne's request. November 22, 1986 -- David Goldberg at SUN Microsystems He complained that GNU Chess was memory-hungry. A few minor modifications to hash.c reduced uninitialized data space 87% and text space 12%. This should make it easier for GNU Chess to run on small computers. November 22, 1986 -- Stuart Cracraft "read" command was working, but needed additional tweaking so that history array would be printed by list_history(). November 19, 1986 -- Stuart Cracraft Added "read" command which reads a history file (game listing) and restores the board to as if the person was still playing that. particular game. Generally cleaned up history mechanism, made it more orthogonal. Revised README. Added doc to MAN-PAGE. November 16, 1986 -- Stuart Cracraft More opening book bugs found and fixed. Added capability to accept abbreviated-algebraic notation for entering "book" games from files. Added approximately 2500 new positions to opening book from games involving the opening called Blackmar-Diemer Gambit, a hoary line developed by Diemer in Germany years ago. November 15, 1986 -- Wayne Christopher at Berkeley He modified the move generator, resulting in a 28% speedup. November 14, 1986 -- Stuart Cracraft He documented a lot of the GNU Chess modules with brief comments for each function. More extensive internal documentation may go in later. November 14, 1986 -- Wayne Christopher at Berkeley He created the Xchess interface for GNU Chess to have windowing with X windows. November 14, 1986 -- Stuart Cracraft He added a "randomization" feature to the opening book. This will cause the program to select randomly from alternate variations whenever -DBEST is removed from Makefile's CFLAGS. If this is not removed, the opening play selects the first move found in the book as it appears "in order" in the human-readable book. November 14, 1986 -- David Goldberg at SUN Microsystems He responded to a query about dbm(3) which eventually resulted in the fixing of a subtle bug in the book code which was causing the program to sometimes hash to the incorrect address and thereby produce a book move which didn't even exist in the book. Thanks David! November 14, 1986 -- Stuart Cracraft He added the "oboard" routine in util.c. This is the reverse of the already extant "iboard" (same module). These two routines translate between GNU Chess internal format and Forsythe notation. November 10, 1986 -- Stuart Cracraft He added the "enter" command. This causes the current game to be entered in the book. Then, GNU Chess tries to mail this new entry to the book maintainers (for inclusion in the master copy of the book). November 9, 1986 -- Stuart Cracraft He added code for an opening book. MAN-PAGE and README were modified accordingly. November 8, 1986 -- Stuart Cracraft Checks and mates are now noticed at ply-1. This is a more complete fix to the Oct 31 fix. October 31, 1986 -- Stuart Cracraft First attempt at fix to bug which causes program to check human's king when program itself is in check. October 31, 1986 -- Mly at MIT Reported a bug which caused program to crash when an illegal human move was played. Fixed. Also, program was unable to play as White. Fixed. October 22, 1986 -- Stuart Cracraft Pps now rewards moves which liberate bishops. October 19, 1986 -- Stuart Cracraft Added bitmapper routines to distribution. Added version notice. October 19, 1986 -- David Goldberg at SUN Microsystems Interfaced GNU Chess with SUN's chesstool. October 18, 1986 -- Initial release date.