Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

gnu.chess FAQ

36 views
Skip to first unread message

Tim Mann

unread,
Jan 3, 1994, 7:27:39 PM1/3/94
to
Frequently asked questions (FAQ) on gnu.chess.
Last modified on Mon Jan 3 16:27:32 PST 1994 by mann

[1] What is GNU Chess?
[2] What is XBoard?
[3] What is XChess?
[4] What is WinBoard? Will WinBoard run on DOS/Windows?
[5] What is cmail?
[6] What are the current version numbers?
[7] Where can I get chess software?
[8] Who is working on this project? How do I contact them to report
bugs, make suggestions, or offer help?
[9] Can I use XBoard to play a game of chess with another human?
[10] Does GNU Chess run on a PC under DOS (or Windows)?
[11] Does GNU Chess run on a Macintosh?
[12] How do I build GNU Chess and XBoard? Do I have to have gcc?
[13] When I try to use GNU Chess with XBoard, it immediately says
"Error: first chess program (gnuchessx) exited unexpectedly". What
do I do?
[14] When I use GNU Chess with XBoard, it seems to freeze on me after
it gets out of its opening book. What do I do?
[15] When I use GNU Chess with XBoard, it sometimes tells me that moves
are illegal when they aren't. What do I do?
[16] GNU Chess often uses a little too much time and lets its flag fall
near the end of a time control period. What's the matter?
[17] What is GNU Chess's rating?
[99] I have lots of other questions about computer chess, or chess in
general.

-----
[1] What is GNU Chess?

GNU Chess is a chess-playing program developed as part of the GNU
project of the Free Software Foundation.

GNU Chess is a communal chess program. Contributors donate their time
and effort in order to make it a stronger, better, sleeker program.
Contributions take many forms: interfaces to high-resolution displays,
opening book treatises, speedups of the underlying algorithms,
additions of extra heuristics. These contributions are then
distributed to the large user-base so that all may enjoy the fruits of
our labor.

GNU Chess is intended to run under Unix or Unix-compatible systems.
It is written in C and should be portable to other systems.

-----
[2] What is XBoard?

XBoard is a graphical chessboard that can serve as a user interface
for GNU Chess or the Internet Chess Server, or can be used by itself.

As an interface to GNU Chess, XBoard lets you play a game against the
machine, set up arbitrary positions, force variations, or watch a game
between two machines.

As an interface to the Internet Chess Server, XBoard lets you play
against other ICS users, observe games they are playing, or review
games that have recently finished.

You can also use XBoard as a chessboard to play through games. It
will read and write game files and allow you to play through
variations manually. You can use it to keep track of email postal
games, browse games off the net, or review GNU Chess and ICS games you
have saved. These features are available at all times, even if you do
not have access to GNU Chess or the ICS.

XBoard runs under Unix or Unix-compatible systems. It requires the X
Window System, version X11R4 or later.

-----
[3] What is XChess?

XChess is an older chessboard program that is no longer supported.
XChess was written for X version 10, and you may or may not be able to
build it on an X11 system.

XChess has only one significant feature that is not present in XBoard:
Two humans can play chess using XChess on different machines, without
using the Internet Chess Server as an intermediary. This feature is
of interest only if you don't have network connectivity to the
Internet Chess Server.

-----
[4] What is WinBoard? Will WinBoard run on DOS/Windows?

WinBoard is a port of XBoard to Windows NT. It uses the same back end
chess code as XBoard, but the front end graphics code is a complete
rewrite.

WinBoard does *not* run on DOS/Windows. Although you can start the
program under the Win32 compatibility package, the major features
(interfacing to GNU Chess and to the ICS) do not work. The main
problem is that DOS does not have threads or real concurrent
processes. A port of WinBoard to DOS/Windows is possible in theory,
but it would be difficult and messy, and is unlikely to happen.

-----
[5] What is cmail?

cmail is a program that helps you play and keep track of electronic
mail correspondence chess games using XBoard. It is distributed with
XBoard 3.0 and has its own manual page.

-----
[6] What are the current version numbers?

At this writing (18 October 1993), the current version numbers are:

- GNU Chess 4.0 patchlevel 62
- XBoard 3.0 patchlevel 9

-----
[7] Where can I get chess software?

Like other GNU software, you can get GNU Chess and XBoard by anonymous
FTP from prep.ai.mit.edu and its many mirror sites. Look in the
directory pub/gnu for files matching the patterns gnuchess-*.gz and
xboard-*.gz. The .gz suffix indicates the files were compressed with
GNU gzip. You can get gzip from prep.ai.mit.edu also.

Another good anonymous FTP site to know about is chess.uoknor.edu.
You can get chess software, game collections, and other chess-related
material there. Sometimes new XBoard versions arrive on this site
before they make it to prep. The FTP server at chess.uoknor.edu can
automatically decompress files for you as you download them, useful if
you don't have gzip.

If you'd like a copy of WinBoard, send mail to Tim Mann
<ma...@src.dec.com>.

-----
[8] Who is working on this project? How do I contact them to report
bugs, make suggestions, or offer help?

Stuart Cracraft is the project coordinator. Mike McGann is the main
developer on GNU Chess 4.0. Tim Mann is the main developer on XBoard.

You can contact all the members of the project by sending mail to
bug-gn...@prep.ai.mit.edu. Comments that are of interest to all
users of the software can be sent to info-gn...@prep.ai.mit.edu,
or posted to the gnu.chess newsgroup. (info-gnu-chess forwards to
gnu.chess.)

Any time you want to report a possible bug in GNU Chess or XBoard, we
need to know exactly what you did, and exactly what error (or other)
messages you got. Run the Unix "script" program, do whatever is
necessary to reproduce the problem, type "exit" to the shell, and mail
us the resulting typescript file. If you're using XBoard, run it with
the -debug flag. We also need to know what hardware/operating system
combination you are using; include this information in your message.

-----
[9] Can I use XBoard to play a game of chess with another human?

The only way for two humans on different machines to play chess in
real time using XBoard is to use the Internet Chess Server as an
intermediary. That is, each player runs his own copy of XBoard, both
of them log into the ICS, and they play a game there. This method is
very satisfactory if you have network connectivity to the ICS---but if
you don't, you're out of luck; sorry.

Instructions on how to get started with the ICS are included with the
XBoard distribution. Note that the North American ICS has moved since
XBoard 3.0 patchlevel 9 was released. Currently the North American
ICS is at rafael.metiu.ucsb.edu (port 5000). The European ICS is at
anemone.aau.dk.edu (port 5000).

The cmail program included with XBoard lets you play email postal
games with another human; see topic [5].

Two humans can play chess on the same machine using one copy of XBoard
in Force Moves mode, but the clocks don't run in this mode, so it's of
limited usefulness.

-----
[10] Does GNU Chess run on a PC under DOS (or Windows)?

Chua Kong Sian has compiled GNU Chess 4.0 for the PC. It is available
on chess.uoknor.edu.

There is also a port of an older version of GNU Chess to Windows that
includes a graphical interface. It's called GNU Chess 3.21. You can
get it from chess.uoknor.edu.

Porting GNU software to PCs is not a major focus of the GNU project,
and such ports are generally not supported.

-----
[11] Does GNU Chess run on a Macintosh?

The Free Software Foundation is boycotting Apple Computer because of
its "look and feel" copyright lawsuits. Therefore ports of GNU
software to Apple products are discouraged.

There is an old port of GNU Chess 3.0 to the Macintosh floating
around, but it is said to be very buggy. If you have a copy of this
port, please don't take the bugs in it as indicative of the current
state of GNU Chess. GNU Chess has come a long way since version 3.0.

-----
[12] How do I build GNU Chess and XBoard? Do I need gcc?

Instructions on building GNU Chess are in its Makefile. You will need
to read and edit the Makefile before you build.

There is a small bug in GNU Chess 4.0 patchlevel 62 that prevents it
from compiling if you don't use either gcc or Microsoft C, but it is
easily fixed with the following patch:

diff -c gnuchess.h.~1~ gnuchess.h
*** gnuchess.h.~1~ Tue Jun 22 06:49:33 1993
--- gnuchess.h Wed Sep 15 11:22:27 1993
***************
*** 27,33 ****

#ifndef __GNUC__
#define inline
! #else
#define huge
#endif

--- 27,35 ----

#ifndef __GNUC__
#define inline
! #endif
!
! #ifndef MSDOS
#define huge
#endif

Instructions on building XBoard are in the file named INSTALL in the
XBoard distribution. You don't need to have gcc.

Here is a new version of the XBoard INSTALL file, with some updates
added since 3.0 patchlevel 9:

How to build and install XBoard
-------------------------------

To build and install xboard on your system, you will need to generate
a properly customized Makefile for it, probably using imake, a program
that comes with the X Window System.

Before you do this, you may need to edit the Imakefile. xboard has
special code for certain systems that is enabled or disabled by ifdefs
in xboard.c. A few systems do not automatically define a symbol that
can be used to select the right ifdef, so you have to define it yourself
in the Imakefile. Here is a list of ifdef symbols used in xboard. To
add one of these, for example FOO, to your Imakefile, add the string -DFOO
to the end of the DEFINES line, separated by a space from what's already
there.

IRIX -- Silicon Graphics IRIX.
IRIS -- Old version of Silicon Graphics Iris code; try
IRIX first.
AIXV3 -- IBM AIX, version 3.
IBMRTAIX -- AIX for the IBM RT. I don't know how this
differs from AIXV3. Use what works for you.
ESIX -- The ESIX operating system.
SYSTEM_FIVE -- Unix System V.
SYSV -- Unix System V.
SVR4 -- Unix System V, release 4.
HPUX or hpux -- Hewlett-Packard HPUX.
UNIPLUS -- Uniplus Unix.
sun -- SUN Microsystems. (**see below**)
RTU -- I don't know what this is for!
__STDC__ -- Automatically defined by ANSI C compilers.
ATTENTION -- Define this if your version of gnuchess
requires you to get its attention by
hitting ^C when you want to move while it
is thinking on your time.
HAS_GETTIMEOFDAY -- Remove this if you don't have the getttimeofday()
system call.
HAS_FTIME -- Add this if you don't have gettimeofday() but you
do have ftime(). If you don't define either
HAS_GETTIMEOFDAY or HAS_FTIME, xboard will keep
time only to the nearest second.
FLEX -- Add this if you are using "flex" instead of Unix
"lex" to process parser.l. Needed by linux.
OMIT_SOCKETS -- Add this if you want to omit the code in
xboard that uses sockets. If you do so,
xboard will not be able to communicate with
the ICS by opening a direct TCP connection,
but the -useTelnet and -gateway options will
still work.

After editing the Imakefile, you should be able to generate a correct
Makefile by typing the command "xmkmf" in the xboard source directory.
This command is supposed to run imake with the right flags for your
site. If you get "Command not found," make sure the directory
containing xmkmf is on your search path. (It is /usr/local/X11/bin on
many systems.) If xmkmf doesn't work, you can try the following
command, editing the pathnames first if the X release is installed in
a different place on your system:

/usr/local/X11/mit/config/imake \
-I/usr/local/X11/mit/config \
-DTOPDIR=/usr/local/X11/mit

Once you have a working Makefile, if you need to make further changes
to the Imakefile, you can use the command "make Makefile" to update
the Makefile after you edit the Imakefile.

After you have a working Makefile, you of course need to type "make"
to build xboard.

Typing "make install" will try to install xboard, cmail, and their
manual pages for public use on your system. (If you aren't a system
administrator, you may not have the necessary privileges to do this.)

If you want to read the manual pages without actually installing them
where the "man" command can find them, type the command "nroff -man
xboard.man | more" or "nroff -man cmail.man | more"


********** Information for linux users **************************************
If you have problems building and running xboard on linux, be sure you
have defined FLEX in the Imakefile (see above), and be sure you have
the latest versions of linux and its X package. xboard is known to
work with "the SLS 1.03 package with the linux 0.99pl12 kernel and
Xfree 1.3". (This is Greek to me; hope it makes sense to you.)


********** Information for Sun users ****************************************
There are lots of different kinds of Suns with different operating
system and window system versions that run on them. I don't
personally have access to any of them, but xboard is known to work on
at least some. I would like to collect more information about what
has to be put in the Imakefile to build xboard for each type of Sun
and each operating system/window system, so please send mail if these
instructions don't work for you---especially if you find out how to
fix them! (See the READ_ME file for the mail address to use.)

** Solaris 2.x *************************
For Solaris 2.x (SunOS 5.x) you need to do the following:

1) Add -DATTENTION to the DEFINES line in the Imakefile. This works
around an unidentified bug that prevents the FIONREAD ioctl in
gnuchess from working, causing gnuchess to hang when it trying to
think on your time after it gets out of its opening book:

DEFINES = -DHAS_GETTIMEOFDAY -Dsun -DATTENTION

2) Uncomment a line in the Imakefile, as shown just below:

# Uncomment the next line for Sun's Solaris 2.x, per Mark Silver:
SYS_LIBRARIES = -lsocket -lnsl -lelf -lm -L/usr/ucblib -lucb

3) Solaris users also need to add /usr/ucblib to their LD_LIBRARY_PATH
environment variable. To do this, add the following line (or
something like it) to your .login file, then log out and back in:

setenv LD_LIBRARY_PATH ${OPENWINHOME}/lib:/usr/lib:/usr/ucblib

Thanks to Arik Klingensmith for the "setenv" information.

4) Ignore any compiler messages you get that start with the word
"warning." I try to eliminate those, but there is only so much I can
do to accomodate the many different C compilers in the world. Sun's
ANSI C compiler is especially picky.

** SunOS 4.x (Solaris 1.x) ***************************
On SunOS 4.1.3 with OpenWindows, you need to do the following:

1) Edit the Imakefile to add -Dsun to the DEFINES and (if necessary)
to uncomment the XMULIB line (delete the # at the front of the line):

DEFINES = -DHAS_GETTIMEOFDAY -Dsun
...

# If you get the following linker error messages on SunOS, you have
# hit a known bug in the SunOS linker (ld).
# ld: Undefined symbol
# _get_wmShellWidgetClass
# _get_applicationShellWidgetClass
# To work around it, try uncommenting this:
XMULIB = -Bstatic -lXmu -Bdynamic
# Ask Sun for patches 100512-02 and 100573-03 to get the real fix.


2) The xmkmf in at least some versions of OpenWindows is broken.
Instead of running xmkmf, try this:

/usr/openwin/bin/imake -DStandardIncludes=-I/usr/openwin/include \
-DUseInstalled -I/usr/openwin/lib/config \
-DDefaultCCOptions=-L/usr/openwin/lib

Without this, the Makefile will not know about the include files and
libraries in /usr/openwin.

Thanks to Ed Hanway for some of this information, and thanks to Jim
Daly for letting me log onto his machine and figure out the rest of it
myself.

I currently don't know how to make xboard run on SunOs 4.1.3 with
Motif (as opposed to OpenWindows). Contact me if you can help.

********** Information for NCR users ****************************************
One user with the following system reported a problem with gnuchess:

NCR system 3300 (486DX2-66 Microchannel box), with operating system
"UNIX System V/386/486 Release 4.0 Version 2.0"

Symptom: When gnuchess is thinking on your time, it does not accept
commands unless you hit ^C first. That causes xboard to hang as soon
as gnuchess gets out of book and starts thinking on your time. This
seems to reflect an operating system bug in the FIONREAD ioctl.

You can easily work around this bug by adding -DATTENTION to the
DEFINES line in the Imakefile before you build xboard.

********** Information for Convex users ONLY ********************************
From: Richard Mathar
Date: Sun, 13 Jun 1993 16:52:37 +0200

xboard-2.0 patchlevel 21 could be compiled using
imake -I/usr/X11/lib/config -DTOPDIR=/usr/X11/lib
and editing some lines in the Makefile to read afterwards

CONFIGSRC = $(LIBSRC)/config
EXTENSIONSRC = $(INCDIR)/extensions
XILIBSRC = $(EXTENSIONSRC)/Xinput
PHIGSLIBSRC = $(EXTENSIONSRC)/PEX
DEPEXTENSIONLIB = $(LIBSRC)/libXext.a
DEPXLIB = $(DEPEXTENSIONLIB) $(LIBSRC)/libX11.a
XLIB = $(EXTENSIONLIB) $(LIBSRC)/libX11.a
DEPXMULIB = $(LIBSRC)/libXmu.a
DEPXTOOLLIB = $(LIBSRC)/libXt.a
************************************************************************

-----
[13] When I try to use GNU Chess with XBoard, it immediately says
"Error: first chess program (gnuchessx) exited unexpectedly". What
do I do?

Try running XBoard again with the "-debug" flag on the command line.
This will print out all the messages received from GNU Chess. Most
likely GNU Chess is exiting with an error message. If you see the
message "NO LANGFILE", it means that you did not install GNU Chess
correctly, and it is unable to find the file gnuchess.lang.

-----
[14] When I use GNU Chess with XBoard, it seems to freeze on me after
it gets out of its opening book. What do I do?

Several things can cause this problem.

a) The most likely cause is that the feature in GNU Chess that lets
you stop it thinking on your time by just entering your move is not
working. This feature relies on the FIONREAD ioctl, which seems to be
broken on some versions of Unix. (See the INSTALL file in question [12]
above for more information on which versions are known to be
affected.) You can work around this problem by rebuilding XBoard with
-DATTENTION added to the DEFINES line of the XBoard Imakefile. Edit
the Imakefile, then type "make Makefile; rm *.o; make" in the XBoard
source directory.

b) You might have built your GNU Chess with the wrong -D options.
This can cause GNU Chess and XBoard to disagree about what units time
is measured in, causing GNU Chess to think for 100 times as long as it
should. Look at your GNU Chess Makefile and check that the line of
options marked "normal", not the line marked "gnufour ICS client", is
uncommented, as follows:

# gnufour ICS client
#OPT= -DCACHE -DCLIENT -DGDX -DGNU3 -DHASGETTIMEOFDAY -DHISTORY -DNULLMOVE -DQU
IETBACKGROUND -DSEMIQUIETBOOKGEN
# normal
OPT= -DCACHE -DGDX -DHASGETTIMEOFDAY -DHISTORY -DNULLMOVE -DOLDTIME -DQUIETBACK
GROUND -DSEMIQUIETBOOKGEN

c) You might have a persistent transposition table (hashfile) that has
been corrupted. Look in the LIBDIR directory you defined in the GNU
Chess Makefile, and if you find a file named gnuchess.hash there,
remove it. Do not use the hashfile if you are running multiple copies
of GNU Chess at the same time (for instance, with Two Machines mode in
XBoard).

-----
[15] When I use GNU Chess with XBoard, it sometimes tells me that moves
are illegal when they aren't. What do I do?

First, be sure you have the latest patchlevel of GNU Chess. At least
one bug that was fixed by the 4.0 patchlevel 62 release could cause
this symptom.

However, there still seems to be a bug in patchlevel 62 that only
shows up on some machines, or perhaps a bug in the C optimizers on
those machines---we don't know which. Most people who have seen this
problem are using IBM RS/6000 workstations.

Here is some information from Tom McConnell and Chua Kong Sian, who
have both built GNU Chess on an RS/6000 with apparent success:

Tom says:

> Here is a list of the flags/compilers I have tried on RS/6000's:
>
> CFLAGS= -O2 -funroll-loops # Breaks with gcc-2.3.3, AIX-3.2.2
> CFLAGS= -O -qchars=signed # Seems to work for cc on RS/6000 AIX-3.2.2
> CFLAGS= -O2 # Fails with gcc-2.3.3 on AIX-3.2.2
> CFLAGS= # Seems to work with gcc-2.3.3 on AIX-3.2.2, and cc.
> CFLAGS= -O # seems to work with gcc-2.3.3 on AIX-3.2.2, and cc.
> CFLAGS = -funroll-loops # Seems to work with gcc-2.3.3 on AIX-3.2.2
> CFLAGS = -O -funroll-loops # fails with gcc-2.3.3 on AIX-3.2.2
>
> I personally use the "CFLAGS = -O" option

Kong Sian says:

> Well, I do have gnuchess on AIX v 3.2 (?) working fine. Using the resident
> cc compiler, I have the flags as
>
> CFLAGS = -O3 -D_POSIX_SOURCE

Note that Kong Sian was NOT using gcc; see topic [12].

Another possibility is that you have a persistent transposition table
(hashfile) that has been corrupted. Look in the LIBDIR directory you
defined in the GNU Chess Makefile, and if you find a file named
gnuchess.hash there, remove it. Do not use the hashfile if you are
running multiple copies of GNU Chess at the same time (for instance,
with Two Machines mode in XBoard).

-----
[16] GNU Chess often uses a little too much time and lets its flag fall
near the end of a time control period. What's the matter?

There are some known problems in clock management and in communication
between GNU Chess and XBoard that should (hopefully) be fixed in the
next GNU Chess patchlevel.

-----
[17] What is GNU Chess's rating?

GNU Chess does not play in tournaments, so strictly speaking, it does
not have a rating. In any case, its strength depends on how fast a
machine you run it on and how much optimization your C compiler does.
Like all computer players, GNU Chess is strong tactically but
relatively weak strategically.

Zippy, a copy of GNU Chess 4.0 patchlevel 62 running on a fast DEC
Alpha AXP 3000/500 workstation, has achieved a blitz rating of over
2200 on the Internet Chess Server. ICS ratings are roughly comparable
to USCF and FIDE ratings, but many players have ICS ratings that are
hundreds of points higher or lower than their USCF or FIDE ratings.
(Note: Zippy usually plays unrated on a slower DECstation 5000/240
because the available Alphas are busy doing real work; he is
noticeably weaker on this machine.)

Several other versions of GNU Chess with various modifications also
play on ICS. The gnufour player runs experimental, unreleased
versions of gnuchess to help evaluate prospective changes, so its
rating often suffers due to bugs or ideas that don't pan out.

-----
[99] I have lots of other questions about computer chess, or chess in
general.

See the Usenet newsgroup rec.games.chess and its FAQ file.
-----

0 new messages