[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
You can get the most recent version of GNU Go ftp.gnu.org or a mirror (see http://www.gnu.org/order/ftp.html for a list). You can read about newer versions and get other information at http://www.gnu.org/software/gnugo/.
2.1 GNU/Linux and Unix | GNU Linux and Unix Installation | |
2.2 Configure Options | ||
2.3 Compiling GNU Go on Microsoft platforms | Windows Installation | |
2.4 Macintosh | Macintosh Installation |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Untar the sources, change to the directory gnugo-3.4. Now do:
./configure [OPTIONS] make |
Several configure options will be explained in the next section. You do not need to set these unless you are dissatisfied with GNU Go's performance or wish to vary the experimental options.
As an example,
./configure --enable-level=9 --enable-cosmic-gnugo |
will make a binary in which the default level is 9, and the experimental
"cosmic"' option is enabled. A list of all configure options can be
obtained by running ./configure --help
. Further information
about the experimental options can be found in the next section
(see section 2.2 Configure Options).
After running configure and make, you have now made a binary called `interface/gnugo'. Now (running as root) type
make install |
to install gnugo in `/usr/local/bin'.
There are different methods of using GNU Go. You may run it from the command line by just typing:
gnugo |
but it is nicer to run it using CGoban 1 (under X-Windows) or Jago (on any platform with a Java runtime environment).
You can get the most recent version of CGoban 1 from http://sourceforge.net/projects/cgoban1/. The earlier version 1.12 is available from http://www.igoweb.org/~wms/comp/cgoban/index.html. The CGoban version number MUST be 1.9.1 at least or it won't work. CGoban 2 will not work.
See section 3.2 Running GNU Go via CGoban, for instructions on how to run GNU Go from Cgoban, or See section 3.5 Running GNU Go via Jago, for Jago.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
There are three options which you should consider configuring, particularly if you are dissatisfied with GNU Go's performance.
2.2.1 Ram Cache | ||
2.2.2 Default Level | ||
2.2.3 DFA Configure Option | DFA Option | |
2.2.4 Experimental Options |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
By default, GNU Go makes a cache of 8 Megabytes in RAM for its internal use. The cache is used to store intermediate results during its analysis of the position.
Increasing the cache size will often give a modest speed improvement. If your system has lots of RAM, consider increasing the cache size. But if the cache is too large, swapping will occur, causing hard drive accesses and degrading performance. If your hard drive seems to be running excessively your cache may be too large. On GNU/Linux systems, you may detect swapping using the program 'top'. Use the 'f' command to toggle SWAP display.
You may override the size of the default cache at compile time by running one of:
./configure --enable-cache-size=n |
to set the cache size to n
megabytes. For example
./configure --enable-cache-size=32 |
creates a cache of size 32 megabytes. If you omit this, your default
cache size will be 8 MB. You must recompile and reinstall
GNU Go after reconfiguring it by running make
and
make install
.
You may override the compile-time defaults by running gnugo with the
option `--cache-size n', where n
is the size in
megabytes of the cache you want, and `--level' where n is the
level desired. We will discuss setting these parameters next in detail.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU Go can play at different levels. Up to level 10 is supported. At level 10 GNU Go is much more accurate but takes an average of about 1.6 times longer to play than at level 8.
The level can be set at run time using the `--level' option. If you don't set this, the default level will be used. You can set the default level with the configure option `--enable-level=n'. For example
./configure --enable-level=9 |
sets the default level to 9. If you omit this parameter, the compiler sets the default level to 10. We recommend using level 10 unless you find it too slow. If you decide you want to change the default you may rerun configure and recompile the program.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
There are two distinct implementations of the pattern matcher in GNU
Go. The DFA (Discrete Finite-state Automata) option was considered
experimental in GNU Go 3.0 but is now standard. You can disable it by
with the configure option ./configure --disable-dfa
. The
option is harder to debug than the old matcher but significantly
faster (see section 10. The DFA pattern matcher).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Anything new in the engine is generally tested as an experimental option which can be turned on or off at compile time or run time. Some "experimental" options such as the break-in code and the semeai code are no longer experimental but are enabled by default.
This section can be skipped unless you are interested in the experimental options.
The term "default" must be clarified, since there
are really two sets of defaults at hand, runtime defaults
specified in `config.h' and compile time default
values for the runtime defaults, contained in `configure'
(which is created by editing `configure.in' then running
autoconf
. For example we find in `config.h'
/* Experimental pattern based reading. Disabled by default. */ /* GAIN/LOSS codes. Disabled by default. */ #define EXPERIMENTAL_OWL_EXT 0 /* Break-in module. Enabled by default. */ #define USE_BREAK_IN 1 |
This means that the experimental owl extension (see Experimental Owl Extension) is disabled by default, but the break-in module (see section 13.10 Break Ins) is turned on. At run time you can override the default by running GNU Go with the command line options
gnugo --experimental-owl-ext --without-break-in |
Alternatively you can configure GNU Go as follows:
./configure --enable-experimental-owl-ext --disable-experimental-break-in |
then recompile GNU Go. This changes the defaults in `config.h', so that you do not have to pass any command line options to GNU Go at run time to get the experimental owl extension turned on and the experimental break-in code turned off.
If you want to find out what experimental options were compiled into your GNU
Go binary you can run gnugo --options
to find out. Here is a list
of experimental options in GNU Go.
experimental-break-in
. Experimental break-in code
(see section 13.10 Break Ins). You should not need to configure this because
the break in code is enabled by default in level 10, and is turned
off at level 9. If you don't want the breakin code just play at
level 9.
experimental-owl-ext
. Experimental Owl extension
(see Experimental Owl Extension).
cosmic-gnugo
. An experimental style which plays a center
oriented game and has a good winning rate against standard GNU Go,
though it may not be stronger than standard GNU Go against other
opponents. This experimental option is a configure option only and
is not available as a run-time option.
owl-threats
. Compute owl threats. Potentially this could
makes GNU Go stronger but it also makes the program slower. Moreover the
owl threat code has not been tested recently and may need some work.
experimental-influence
. Use the experimental influence
module. Enabled by default.
experimental-semeai
. Use the reading semeai module based on
the owl code. Enabled by default.
experimental-connections
. Use the experimental connection
analysis. Enabled by default.
alternate-connections
. Use in conjunction with
experimental-connections
. Uses an alternative implementation of
the experimental connection analysis. Enabled by default.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU Go is being developed on Unix variants. GNU Go is easy to build and install on those platforms. GNU Go 3.4 has support for building on MS-DOS, Windows 3.x, Windows NT/2000 and Windows 95/98.
There are two approaches to building GNU Go on Microsoft platforms.
One benefit of this approach is that it is easier to participate in Gnu Go's development. These unix environments come for instance with the `diff' and `patch' programs necessary to generate and apply patches.
Another benefit of the unix environments is that development versions (which may be stronger than the latest stable version) can be built too. The supporting files for VC are not always actively worked on and consequently are often out of sync for development versions, so that VC will not build cleanly.
The rest of this section gives more details on the various ways to compile GNU go for Microsoft platforms.
2.3.1 Windows 95/98, MS-DOS and Windows 3.x using DJGPP | ||
2.3.2 Windows NT, Windows 95/98 using Cygwin | Windows NT, 95/98 using Cygwin | |
2.3.3 Windows NT, Windows 95/98 using MinGW32 | Windows NT, 95/98 using MINGW32 | |
2.3.4 Windows NT, Windows 95/98 using Visual C and project files | Visual C++ using Project Files |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
On these platforms DJGPP can be used. GNU Go installation has been tested in a DOS-Box with long filenames on Windows 95/98. GNU Go compiles out-of-the box with the DJGPP port of GCC using the standard Unix build and install procedure.
Some URLs for DJGPP:
DJGPP home page: http://www.delorie.com/djgpp/
DJGPP ftp archive on simtel:
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2/
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/
Once you have a working DJGPP environment and you have downloaded the gnugo source available as gnugo-3.4.tar.gz you can build the executable as follows:
tar zxvf gnugo-3.4.tar.gz cd gnugo-3.4 ./configure make |
Optionally you can download glib for DJGPP to get a working version of snprintf.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
On these platforms the Cygwin environment can be installed. Recent versions of Cygwin install very easily with the setup program available from the cygwin homepage. http://sources.redhat.com/cygwin/. GNU Go compiles out-of-the box using the standard Unix build procedure on the Cygwin environment. After installation of cygwin and fetching `gnugo-3.4.tar.gz' you can type:
tar zxvf gnugo-3.4.tar.gz cd gnugo-3.4 ./configure make |
The generated executable is not a stand-alone executable: it needs cygwin1.dll that comes with the Cygwin environment. cygwin1.dll contains the emulation layer for Unix.
Cygwin Home page: http://sources.redhat.com/cygwin/
Optionally you can use glib to get a working version of snprintf. Glib builds out of the box on cygwin.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The Cygwin environment also comes with MinGW32. This generates an executable that relies only on Microsoft DLLs. This executable is thus completely comparable to a Visual C executable and easier to distribute than the Cygwin executable. To build on cygwin an executable suitable for the win32 platform type the following at your cygwin prompt:
tar zxvf gnugo-3.4.tar.gz cd gnugo-3.4 env CC='gcc -mno-cygwin' ./configure make |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
We assume that you do not want to change any configure options.
If you do, you should edit the file `config.vc'. Note that
when configure
is run, this file is overwritten with
the contents of `config.vcin', so you may also want to edit
`config.vcin', though the instructions below do not have
you running configure
.
Notes:
msdev gnugo.dsw /make "gnugo - Win32 Release" |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU Go does not come with its own graphical user interface. The Java client jago can be used.
To run Jago you need a Java Runtime Environment (JRE). This can be obtained from http://www.javasoft.com/. This is the runtime part of the Java Development Kit (JDK) and consists of the Java virtual machine, Java platform core classes, and supporting files. The Java virtual machine that comes with I.E. 5.0 works also.
Jago: http://www.rene-grothmann.de/jago/
gnugo --quiet --mode gmp
gnugo --help
from a cygwin or DOS window for a list of
options
--level <level>
to make the game faster
Jago works well with both the Cygwin and MinGW32 executables. The DJGPP executable also works, but has some problems in the interaction with jago after the game has been finished and scored.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
If you have Mac OS X you can build GNU Go using Apple's compiler, which is derived from GCC. We recommend adding the flag -no-cpp-precom to CFLAGS.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |