Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What can be learnt from Bob Hyatt's opening book troubles?!

Author: Robert Hyatt

Date: 13:21:21 02/05/98

Go up one level in this thread


On February 05, 1998 at 15:08:01, Bert Seifriz wrote:

>As all know Crafty had a bumpy start at Komputer Kup II, due to a
>(let us call it) bug in the opening book. But in my view the real
>problem lies somewhere else:
>Bob is by no means the only programmer who would start at a world
>championship with a program which is 5 minutes old. I saw
>it myself that programmers made 3 overnight changes during a
>5 day tournament, when they would have definitely better taken
>a 6 month old version which had proved bug free so far.
>
>And I saw Fedex overnight express delivery of opening books
>during world championships which contained opening lines at the
>end of which the program would have lost a QUEEN for nothing.
>To make it short: it is certainly better taking a well tested
>program to a championship than making changes until the last minute!
>Bert

I never do this.  The "book trouble" in KKUP II was caused by the desire
to release a static version of crafty and the opening books, so that all
operators would use the same identical code, and anyone wanting to watch
and confirm that nothing fishy was going on could also use the exact
same
chess engine and opening books.

What went wrong was that I build crafty with gcc under linux.  I then
built
the opening book with that code.  I compiled (using DJGPP) a dos version
of
Crafty to test the book on, and all worked perfectly.  Jason actually
compiles the dos/windows versions using MSVC because DGJPP is not
compatible
with winboard.  MSVC treats structures differently than gcc.  My book
position structure has 2 long long integers and one float. GCC calls
that
20 bytes in sizeof(BOOK_POSITION).  MSVC calls that 24.  All this means
is
that a book created by the MSVC version can't be read properly by the
gcc
version and vice-versa.  I'd never encountered this before, and don't
really
see how any amount of planning could have caught it.

It was my mistake.  But it wasn't caused by last minute changes.
Everyone
is still going to play using the same engine that we started with.  I
simply
had jason use the MSVC version he had already compiled for the KUP, and
create a book with that version.  It works perfectly...  No changes to
the
crafty source, no changes to the book pgn source either.  Just an ugly
incompatibility between the two compilers being used here...

The version of "crafty" we are using has been running on several servers
for a couple of weeks.  It has played about 2,000 games on my machine
alone,
mostly against IM and GM players.  So "crafty" was ok.  It was something
totally unexpected that caused the glitch.  I *never* try to supply a
binary book file due to things like big-endian/little-endian machine
differences, but incorrectly assumed that since both compilers were made
for
the intel platform, they were equivalent.  not the case at all, as I
found
out.

I've also seen programmers madly modifying code at every ACM and WCCC
event I have attended.  I *never* do this.  The likelihood of adding
new bugs is much greater than the chance of correcting existing bugs...



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.