GNU Chess 6 (= Fruit)

Discussion of chess software programming and technical issues.

Moderator: Ras

Dann Corbit
Posts: 12799
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: GNU Chess 6 (= Fruit)

Post by Dann Corbit »

kongsian wrote:
Dann Corbit wrote: I did not like what they did with the v5 GnuChess. They clearly made a serious effort to morph it so that it would not work under Windows. There is no other possible explanation for their architecture choices.

Operating system hostility is as big a pile of foolishness as racism.
This statement really intrigues me. Could you explain what you mean in greater detail? I was under the impression it runs fine under Windows.

Kong Sian
It won't build with the Microsoft, Intel or Mingw compilers without modification.

It will build under Cygwin's Posix layer, but pretty much any Posix program will port effortlessly there.

There is someone who has modified versions, which I don't remember where to find right now. Those build without too much difficulty and they are the versions that I use.

Early versions of GnuChess 5 would build right out of the box with any compiler I might like to choose. I don't mind the inclusion of pthreads of timeofday() because those sorts of things are simple to overcome due to Windows variants that are available. It takes some effort to get to the point where I can actually compile the original sources, so I am not sure what the actual API calls are that cause problems.

I notice that there is a new version 5.08. I will see if it will compile cleanly without resorting to Cygwin. Mingw will generally compile most Posix apps (though there are some things like fork() will defeat mingw).
Ryan Benitez
Posts: 719
Joined: Thu Mar 09, 2006 1:21 am
Location: Portland Oregon

Re: GNU Chess 6 (= Fruit)

Post by Ryan Benitez »

hgm wrote: Who is running this show? Is it Stuart and Kong Sian?
Antonio Ceballos, Simon Waters, Stuart Cracraft.

This is good news even with the age of the software. I expected this to happen in 2007 or 2008.
Xann
Posts: 132
Joined: Sat Jan 22, 2011 7:14 pm
Location: Lille, France
Full name: Fabien Letouzey

Re: GNU Chess 6 (= Fruit)

Post by Xann »

hgm wrote:OK, thanks. It seems they are struggling to do something that has already been done (namely make an adapter that at the front-end understands both XBoard and UCI protocol, and at the back-end converses with Fruit in UCI), and is not needed (because current XBoard spawns Polyglot itself when running UCI engines. If they really want to convert Fruit into an XBoard engine, they would save themselves a lot of trouble by contacting me anyway; I probably already have the code for that lying around...
Ooo, XBoard automatically calls PolyGlot :)
I didn't know.
Indeed it makes a big difference.

But UCI only is not what they want either.
There is the default console mode, perhaps taken from previous GNU Chess versions.
They could spawn in this case too, but they seem to dislike it.
On second thought, they could also place the console-mode code inside of PolyGlot.

Fabien.
User avatar
Kirill Kryukov
Posts: 518
Joined: Sun Mar 19, 2006 4:12 am
Full name: Kirill Kryukov

Re: GNU Chess 6 (= Fruit)

Post by Kirill Kryukov »

Dann Corbit wrote:It won't build with the Microsoft, Intel or Mingw compilers without modification.

It will build under Cygwin's Posix layer, but pretty much any Posix program will port effortlessly there.

There is someone who has modified versions, which I don't remember where to find right now. Those build without too much difficulty and they are the versions that I use.

Early versions of GnuChess 5 would build right out of the box with any compiler I might like to choose. I don't mind the inclusion of pthreads of timeofday() because those sorts of things are simple to overcome due to Windows variants that are available. It takes some effort to get to the point where I can actually compile the original sources, so I am not sure what the actual API calls are that cause problems.

I notice that there is a new version 5.08. I will see if it will compile cleanly without resorting to Cygwin. Mingw will generally compile most Posix apps (though there are some things like fork() will defeat mingw).
Oh, great, 5.08 finally. It was so long time since 5.07 release that the project looked dead basically. Which was a shame because there were so many bugs in 5.07. Then someone (Michel van den Bergh) made a fork and fixed the most serious bugs. (Available here). Now this forked version compiles and runs fine under Windows. I'm curious if 5.08 backports any of his fixes.
Dann Corbit
Posts: 12799
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: GNU Chess 6 (= Fruit)

Post by Dann Corbit »

Kirill Kryukov wrote:
Dann Corbit wrote:It won't build with the Microsoft, Intel or Mingw compilers without modification.

It will build under Cygwin's Posix layer, but pretty much any Posix program will port effortlessly there.

There is someone who has modified versions, which I don't remember where to find right now. Those build without too much difficulty and they are the versions that I use.

Early versions of GnuChess 5 would build right out of the box with any compiler I might like to choose. I don't mind the inclusion of pthreads of timeofday() because those sorts of things are simple to overcome due to Windows variants that are available. It takes some effort to get to the point where I can actually compile the original sources, so I am not sure what the actual API calls are that cause problems.

I notice that there is a new version 5.08. I will see if it will compile cleanly without resorting to Cygwin. Mingw will generally compile most Posix apps (though there are some things like fork() will defeat mingw).
Oh, great, 5.08 finally. It was so long time since 5.07 release that the project looked dead basically. Which was a shame because there were so many bugs in 5.07. Then someone (Michel van den Bergh) made a fork and fixed the most serious bugs. (Available here). Now this forked version compiles and runs fine under Windows. I'm curious if 5.08 backports any of his fixes.
5.08 will build under Mingw if we include -lpthread on the link line.

dcorbit@DCORBIT2008 /c/pgn/winboard-engines/gnuchess-5.08
$ ./configure
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for gawk... (cached) gawk
checking whether ln -s works... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... none needed
checking whether yytext is a pointer... no
checking for tputs in -lncurses... no
checking for readline in -lreadline... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking readline/readline.h usability... yes
checking readline/readline.h presence... yes
checking for readline/readline.h... yes
checking readline/history.h usability... yes
checking readline/history.h presence... yes
checking for readline/history.h... yes
checking for ANSI C header files... (cached) yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for an ANSI C-conforming const... yes
checking for working volatile... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for inline... inline
checking for size_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking for stdint types... stdint.h (shortcircuit)
make use of stdint.h in src/GCint.h (assuming C99 compatible system)
checking return type of signal handlers... void
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for working memcmp... yes
checking for gettimeofday... yes
checking for strchr... yes
checking for strcspn... yes
checking for strstr... yes
checking for strerror... yes
checking for memset... yes
checking for strdup... yes
checking for strtol... yes
checking build system type... i686-pc-mingw32
checking host system type... i686-pc-mingw32
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... no
checking whether pthreads work with -pthreads... no
checking whether pthreads work with -mthreads... no
checking for the pthreads library -lpthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
checking for cc_r... gcc
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/config.h
config.status: executing depfiles commands
config.status: executing src/GCint.h commands
config.status: creating src/GCint.h : _GNUCHESS_SRC_GCINT_H

dcorbit@DCORBIT2008 /c/pgn/winboard-engines/gnuchess-5.08
$ make
Making all in src
make[1]: Entering directory `/c/pgn/winboard-engines/gnuchess-5.08/src'
make all-am
make[2]: Entering directory `/c/pgn/winboard-engines/gnuchess-5.08/src'
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT atak.o -MD -MP -MF .deps/atak.Tpo -c -o atak.o atak.c
mv -f .deps/atak.Tpo .deps/atak.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT book.o -MD -MP -MF .deps/book.Tpo -c -o book.o book.c
mv -f .deps/book.Tpo .deps/book.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT cmd.o -MD -MP -MF .deps/cmd.Tpo -c -o cmd.o cmd.c
mv -f .deps/cmd.Tpo .deps/cmd.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT epd.o -MD -MP -MF .deps/epd.Tpo -c -o epd.o epd.c
mv -f .deps/epd.Tpo .deps/epd.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT eval.o -MD -MP -MF .deps/eval.Tpo -c -o eval.o eval.c
mv -f .deps/eval.Tpo .deps/eval.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT genmove.o -MD -MP -MF .deps/genmove.Tpo -c -o genmove.o genmove.c
mv -f .deps/genmove.Tpo .deps/genmove.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT getopt.o -MD -MP -MF .deps/getopt.Tpo -c -o getopt.o getopt.c
mv -f .deps/getopt.Tpo .deps/getopt.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT getopt1.o -MD -MP -MF .deps/getopt1.Tpo -c -o getopt1.o getopt1.c
mv -f .deps/getopt1.Tpo .deps/getopt1.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT hash.o -MD -MP -MF .deps/hash.Tpo -c -o hash.o hash.c
mv -f .deps/hash.Tpo .deps/hash.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT hung.o -MD -MP -MF .deps/hung.Tpo -c -o hung.o hung.c
mv -f .deps/hung.Tpo .deps/hung.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT init.o -MD -MP -MF .deps/init.Tpo -c -o init.o init.c
mv -f .deps/init.Tpo .deps/init.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT input.o -MD -MP -MF .deps/input.Tpo -c -o input.o input.c
mv -f .deps/input.Tpo .deps/input.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT iterate.o -MD -MP -MF .deps/iterate.Tpo -c -o iterate.o iterate.c
mv -f .deps/iterate.Tpo .deps/iterate.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c
main.c: In function 'main':
main.c:333:26: warning: passing argument 1 of 'getopt_long' makes pointer from integer without a cast
./getopt.h:150:16: note: expected 'int *' but argument is of type 'int'
main.c:333:26: warning: passing argument 2 of 'getopt_long' from incompatible pointer type
./getopt.h:150:16: note: expected 'char * const**' but argument is of type 'char **'
mv -f .deps/main.Tpo .deps/main.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT move.o -MD -MP -MF .deps/move.Tpo -c -o move.o move.c
mv -f .deps/move.Tpo .deps/move.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT null.o -MD -MP -MF .deps/null.Tpo -c -o null.o null.c
mv -f .deps/null.Tpo .deps/null.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT output.o -MD -MP -MF .deps/output.Tpo -c -o output.o output.c
mv -f .deps/output.Tpo .deps/output.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT players.o -MD -MP -MF .deps/players.Tpo -c -o players.o players.c
mv -f .deps/players.Tpo .deps/players.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT pgn.o -MD -MP -MF .deps/pgn.Tpo -c -o pgn.o pgn.c
mv -f .deps/pgn.Tpo .deps/pgn.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT ponder.o -MD -MP -MF .deps/ponder.Tpo -c -o ponder.o ponder.c
mv -f .deps/ponder.Tpo .deps/ponder.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT quiesce.o -MD -MP -MF .deps/quiesce.Tpo -c -o quiesce.o quiesce.c
mv -f .deps/quiesce.Tpo .deps/quiesce.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT random.o -MD -MP -MF .deps/random.Tpo -c -o random.o random.c
mv -f .deps/random.Tpo .deps/random.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT repeat.o -MD -MP -MF .deps/repeat.Tpo -c -o repeat.o repeat.c
mv -f .deps/repeat.Tpo .deps/repeat.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT search.o -MD -MP -MF .deps/search.Tpo -c -o search.o search.c
mv -f .deps/search.Tpo .deps/search.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT solve.o -MD -MP -MF .deps/solve.Tpo -c -o solve.o solve.c
mv -f .deps/solve.Tpo .deps/solve.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT sort.o -MD -MP -MF .deps/sort.Tpo -c -o sort.o sort.c
mv -f .deps/sort.Tpo .deps/sort.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT swap.o -MD -MP -MF .deps/swap.Tpo -c -o swap.o swap.c
mv -f .deps/swap.Tpo .deps/swap.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT test.o -MD -MP -MF .deps/test.Tpo -c -o test.o test.c
mv -f .deps/test.Tpo .deps/test.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT ttable.o -MD -MP -MF .deps/ttable.Tpo -c -o ttable.o ttable.c
mv -f .deps/ttable.Tpo .deps/ttable.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT util.o -MD -MP -MF .deps/util.Tpo -c -o util.o util.c
mv -f .deps/util.Tpo .deps/util.Po
gcc -DHAVE_CONFIG_H -I. -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/
python64-2.6/include -L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/n
etpbm/include -L/usr/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/incl
ude -MT lexpgn.o -MD -MP -MF .deps/lexpgn.Tpo -c -o lexpgn.o lexpgn.c
mv -f .deps/lexpgn.Tpo .deps/lexpgn.Po
gcc -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/python64-2.6/include -L
/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/netpbm/include -L/usr/sy
stem64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/include -lpthread -I/usr/s
ystem64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/python64-2.6/include -L/usr/system64
/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/netpbm/include -L/usr/system64/netpbm
/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/include -o gnuchess.exe atak.o book.o cm
d.o epd.o eval.o genmove.o getopt.o getopt1.o hash.o hung.o init.o input.o iterate.o main.o move.o null.o output.o players.o pgn.o ponder.o
quiesce.o random.o repeat.o search.o solve.o sort.o swap.o test.o ttable.o util.o lexpgn.o -lreadline
input.o:input.c:(.text+0x17a): undefined reference to `pthread_mutex_lock'
input.o:input.c:(.text+0x1a3): undefined reference to `pthread_cond_signal'
input.o:input.c:(.text+0x1af): undefined reference to `pthread_mutex_unlock'
input.o:input.c:(.text+0x1bb): undefined reference to `pthread_mutex_lock'
input.o:input.c:(.text+0x1d0): undefined reference to `pthread_cond_wait'
input.o:input.c:(.text+0x1e7): undefined reference to `pthread_mutex_unlock'
input.o:input.c:(.text+0x21c): undefined reference to `pthread_mutex_lock'
input.o:input.c:(.text+0x232): undefined reference to `pthread_mutex_unlock'
input.o:input.c:(.text+0x23e): undefined reference to `pthread_mutex_lock'
input.o:input.c:(.text+0x24a): undefined reference to `pthread_cond_signal'
input.o:input.c:(.text+0x256): undefined reference to `pthread_mutex_unlock'
input.o:input.c:(.text+0x26e): undefined reference to `pthread_mutex_lock'
input.o:input.c:(.text+0x28b): undefined reference to `pthread_cond_wait'
input.o:input.c:(.text+0x297): undefined reference to `pthread_mutex_unlock'
input.o:input.c:(.text+0x2fa): undefined reference to `pthread_create'
input.o:input.c:(.text+0x32b): undefined reference to `pthread_join'
collect2: ld returned 1 exit status
make[2]: *** [gnuchess.exe] Error 1
make[2]: Leaving directory `/c/pgn/winboard-engines/gnuchess-5.08/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/c/pgn/winboard-engines/gnuchess-5.08/src'
make: *** [all-recursive] Error 1

dcorbit@DCORBIT2008 /c/pgn/winboard-engines/gnuchess-5.08/src
$ gcc -I/usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/python64-2.6/include
-L/usr/system64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/netpbm/include -L/us
r/system64/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/include -lpthread -I/
usr/system64/include -L/usr/system64/lib -L/usr/system64/ssl/lib -I/usr/system64/ssl/include -I/usr/system64/python64-2.6/include -L/usr/sy
stem64/python64-2.6/DLLs -I/usr/system64/tcltk64-8.6/include -L/usr/system64/tcltk64-8.6/lib -I/usr/system64/netpbm/include -L/usr/system64
/netpbm/lib -I/usr/system64/java64/jdk1.6.0/include -L/usr/system64/java64/jdk1.6.0/lib -I/usr/system64/gs/include -o gnuchess.exe atak.o b
ook.o cmd.o epd.o eval.o genmove.o getopt.o getopt1.o hash.o hung.o init.o input.o iterate.o main.o move.o null.o output.o players.o pgn.o
ponder.o quiesce.o random.o repeat.o search.o solve.o sort.o swap.o test.o ttable.o util.o lexpgn.o -lreadline -lpthread

dcorbit@DCORBIT2008 /c/pgn/winboard-engines/gnuchess-5.08/src
$ ls *.exe
gnuchess.exe

dcorbit@DCORBIT2008 /c/pgn/winboard-engines/gnuchess-5.08/src
$ gnuchess
GNU Chess 5.08
Adjusting HashSize to 1024 slots
Transposition table: Entries=1K Size=48K
Pawn hash table: Entries=0K Size=32K
White (1) : xboare
Illegal move: xboare
White (1) : xboard
White (1) : new
White (1) : post
White (1) : Root = 0, Phase = 1
Time = 5.00, Max = 20.00, Left = 0.00, Moves = 0
Ply Time Eval Nodes Principal-Variation
1. 72 0 20 e4
2. 24 0 94 d4 d5 Nc3 Nf6 Bf4
3. 24 0 114 d4 d5 Nc3 Nf6 Bf4
4. 24 0 134 d4 d5 Nc3 Nf6 Bf4
5. 24 0 920 d4 d5 Nc3 Nf6 Bf4
6. 24 0 1242 d4 d5 Nc3 Nf6 Bf4
7. 24 0 11694 d4 d5 Nc3 Nf6 Bf4
8. 24 0 14456 d4 d5 Nc3 Nf6 Bf4
9. 24 0 573813 d4 d5 Nc3
10. 22 7 5271905 d4 d5 Nc3 Nf6 Bf4 Bf5
11. 19 68 42432911 e4 Nc6 Nf3 d5 exd5 Qxd5
Dann Corbit
Posts: 12799
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: GNU Chess 6 (= Fruit)

Post by Dann Corbit »

Here is the project with a 64 bit binary and required DLL files compiled with mingw 64 bit:
http://cap.connx.com/chess-engines/new- ... ss-5.08.7z

I do not know how well it works, only that it compiles and runs.
Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Re: GNU Chess 6 (= Fruit)

Post by Michel »

Personally I find the development process of GnuChess 6 quite weird. When I started fixing bugs in 5.07 I posted a few times on the GnuChess mailing list but I didn't get any meaningful replies from the maintainers. They certainly didn't tell me they were secretly working on a new version. I can't understand why they would treat potential collaborators like that.

I suggest not bothering with 5.08. I looked at the CVS version recently and the changes were very small (but they did implement the memory command). GnuChess 6, being based on Fruit is obviously much stronger.

Personally I've gotten to like thinkering with GnuChess so I will probably fork 5.07. My current version of GnuChess already supports both UCI and xboard natively (and uses native windows threads). So if I for example implement the eval of Fruit it will be just as strong (and probably stronger given the improved search) as GnuChess 6 but with a much less hacky internal structure.
Roger Brown
Posts: 782
Joined: Wed Mar 08, 2006 9:22 pm

Re: GNU Chess 6 (= Fruit)

Post by Roger Brown »

Michel wrote:Personally I find the development process of GnuChess 6 quite weird. When I started fixing bugs in 5.07 I posted a few times on the GnuChess mailing list but I didn't get any meaningful replies from the maintainers. They certainly didn't tell me they were secretly working on a new version. I can't understand why they would treat potential collaborators like that.

I suggest not bothering with 5.08. I looked at the CVS version recently and the changes were very small (but they did implement the memory command). GnuChess 6, being based on Fruit is obviously much stronger.

Personally I've gotten to like thinkering with GnuChess so I will probably fork 5.07. My current version of GnuChess already supports both UCI and xboard natively (and uses native windows threads). So if I for example implement the eval of Fruit it will be just as strong (and probably stronger given the improved search) as GnuChess 6 but with a much less hacky internal structure.



Hello Michel,

GnuChess supports UCI natively?

This is really news that I totally missed.

Sigh.

This is the version currently available for download?

Later.
User avatar
Giorgio Medeot
Posts: 52
Joined: Fri Jan 29, 2010 2:01 pm
Location: Ivrea, Italy

Re: GNU Chess 6 (= Fruit)

Post by Giorgio Medeot »

Michel wrote:Personally I've gotten to like thinkering with GnuChess so I will probably fork 5.07. My current version of GnuChess already supports both UCI and xboard natively (and uses native windows threads). So if I for example implement the eval of Fruit it will be just as strong (and probably stronger given the improved search) as GnuChess 6 but with a much less hacky internal structure.
Well I must admit that I don't get the point of this Fruit->GnuChess operation: I mean, we already have Fruit (actually it's called "Fruit"), and we have GnuChess, each with his own personality :).
Unless they have to keep somehow alive the GnuChess name no matter what, if that is the case this would be more understandable to me (but still it's just a matter of semantic).

If Michel will be willing to fork GnuChess 5.07, I will for sure enjoy it.

Cheers,
  • Giorgio
Xann
Posts: 132
Joined: Sat Jan 22, 2011 7:14 pm
Location: Lille, France
Full name: Fabien Letouzey

Re: GNU Chess 6 (= Fruit)

Post by Xann »

Giorgio Medeot wrote:Well I must admit that I don't get the point of this Fruit->GnuChess operation: I mean, we already have Fruit (actually it's called "Fruit"), and we have GnuChess, each with his own personality :).
Unless they have to keep somehow alive the GnuChess name no matter what, if that is the case this would be more understandable to me (but still it's just a matter of semantic).
The name GNU Chess seems important for the FSF indeed.
And notice the difference between GPL and GNU licence.
I have lost all rights, but in exchange the FSF guarantees the project stays free forever.
With GPL, the author can do whatever he wants with each release.

IIRC it's Stuart Cracraft who asked it to me.
RMS was included only as copy.
The problem is that they did nothing with it for a couple of years.

So Stuart probably wanted to update GNU Chess, while at the same time having no intention to do the Fruit inclusion himself.

Fabien.