18-9-00 -> Initial release. (v1.00)

	   Current features: NegaScout search algorithm, bitboards,
           hash tables, recursive null move pruning with adaptative
           reduction factors, pondering, razoring, futility pruning,
           fractional ply extensions (full ply was exploding tree too
           much, I still have to work more on this), lazy eval (recent
           addition, it boosted NPS), partial EGTB support (I wouldn't
           dare to read Eugene's code but thankfully, his probing
           code is easy to get working) and a small opening book.

20-9-00 -> v1.01

	   George Lyapko reported a bug in time allocation. Pepito
	   would crash when given base + increment mode. Now it's
	   working fine.

	   Also added a configuration file to set up hash table size
           and the path where tablebases are located. No need for
           environment variables now, though you can still do it that
           way.

22-9-00 -> v1.02

	   Fixed a really harmful bug in evaluation funtion. My mating
           routines where being applied at wrong points in the search,
	   which eventually resulted in obvious blunders. It must have
	   been there or ages.

	   Book wasn't working properly and sometimes not even working
	   at all. Increased bit resolution in position identification
           to 96 bits (global hash index + pawn hash index). That should
	   avoid book collisions hopefully forever (really?). I've no-
	   ticed in the past, when building big books (around 2 MB),
	   that some lines lost material (that includes the queen). I'm
	   pretty sure GMs don't play this openings. LOL.

	   Decreased bishop value to knight level. Movility socres
	   and two bishops bonus should keep them higher. I realized
	   this after a game against Bestia, where Pepito sacrificed
	   its pawn structure (3 isolated pawns, 2 of them doubled)
	   just to keep the two bishops alive.

24-9-00 -> v1.03

	   José Carlos Martínez reported another bug in time allocation
	   in base+inc games. Looks like my simple "think there are always
	   30 moves left" turned out to be "only think 30 moves". :)

	   Added "Move Now" option. Pepito now polls input always. If it
	   finds something at input it stops searching and attends xboard's
	   commands. This also means you won't have to wait until Pepito
	   has finished searching to reset current game.

           Relaxed lazy eval margin. It was cutting short evaluations too
           close to the alpha-beta window, resulting in weird positional
           moves.

           Added inmediate response to positions with only one legal move.

           No material imbalance limits in extensions in the PV.

	   Bishops get more punished now if they stay at the first rank.

22-12-00 -> v1.10

           This version is distributed under the terms of the GPL.
           See file COPYING. Source code available at: 
           www.crosswinds.net/~pepitochess

           Book fixed once and for all. I wasn't explicitly telling the OS
           to open a binary file so in some systems it didn't work. :-(

           PVs containing pawn captures weren't correctly displayed in Xboard.
           Fixed...

           Gábor Szots found an old bug that caused Pepito to crash when
           Xboard sent moves e1g1, e1c1, e8g8, e8c8 without being castling
           moves (queen or rook moves). This was caused by an error in the
           move parsing routine.

           Evaluation function:
           - Tweaked king safety scores so they get higher values.
           - Added a cache to remember positions that trigger the whole
             evaluation.
           - Dieter Buerssner posted an idea at CCC to use lazy eval with
             fail-soft alpha-beta. Tried it and it worked quite well...

           Search:
           - Null moves not allowed during the first 3 iterations. This appears
             to reduce the node count. I guess it's because history table gets
             filled with more information before going deeper and moves get
             better sorting because of this.
           - Experimenting with R=4 if depth left > 10.
           - PV stuffed in to the hash table at the end of each iteration to
             improve move ordering at root in case some hash entries get
             overwritten.
           - Bug fixed in Quiescent search that caused non-futile captures to
             be pruned without further consideration.
           - Nullmoves treated as captures when considering draw by repetition.

           EGTB support:
           - Another bug reported by Gábor Szots where Pepito crashed in a
             game vs. Averno due to a problem with passing ep squares in wrong
             format to Eugene's code. Fixed. Thanx a lot, Gábor!

           Added new entries to config.dat. Pepito can resign now!!! Take a
           look...

           And probably some other things I forget to log. I hope this version
           is less buggy than previous ones (not bug-less. what would I do
           then? ;-) ). Stronger? Maybe. Merry Christmas!

15-9-01 -> v1.40

           It's been a long time since I don't update this file...
           Let's see if I remember all the little things I've changed during
           the past few months:

           - Juan Ignacio Barbosa reported a bug that caused Pepito to chose
             non book moves while probing book. Go figure.

           - Moved all the heavy eval terms up to be able to lazy eval with
             tighter margins, resulting in 40-50% speedup in positions where
             not much is going on (most).

           - Fixed hashing bug. I was storing wrong bounds in the TT at times.
             Also improved hashing replacement scheme based on Bruce Moreland's
             Gerbil.

           - Added UCI compatibility. This forced to load EGTBs after boot,
             which means if you're going to run Pepito from the command line
             and you intend to use EGTBs while running test suites you have to
             type 'egtbload' now. In Winboard this gets done automatically
             after receiving the 'xboard' command.

           - Added a two step book probing scheme, suggested by Carlos Pesce.
             The idea is to have a small primary book with tuned lines and a
             larger secondary book built from PGNs (you can build your own
             books using the bbook command. not that many options here). Thanx
             Carlos (looks like I'm talking to myself), for your active testing.

           - Rewritten king safety code. You might wonder why one of the worst
             engines evaluating this stuff spent around 25% CPU time doing so.
             Well, it isn't much better but it's kind of faster.

           - Improved endgame knowledge (rewritten some passer stuff and added
             wrong bishop with h-pawn code).

           - Improved root move ordering. Quiesce is called at the beginning for
             each move with -INF,INF to get score estimates. This is also used
             for detecting easy moves.

           - New time management. Time extensions get triggered when the search
             fails high/low or Pepito is changing its "mind". Older versions had
             problems because of thinking for short time periods.

           - Tweaked extensions a bit. Extending a bit heavier in the PV to try
             to make sure the root move isn't failing low. I'm also trying a
             risky idea consisting in depth reduction when we think we are going
             to fail low. It shows some merit but it does seem to hide tactical
             shots often.

           - PVs don't get displayed until iteration depth 5 by default. You can
             adjust this with the DISPLAY_MARGIN parameter in the configuration
             file.

           - Anything not listed is in the source files :-)

           Finally, I want to say, can't we all live in PEACE?

28-9-01 -> v1.42

           - Horrible evaluation bug found. Trade bonus was sign reversed,
             causing weird play.

           - Relaxed a lot the selective reduction I was playing with. It does
             make trees smaller, but it is less error prone now (I think).

           - Changed some null move conditions that determine when it gets
             tried.

           - Slightly increased queen value.

22-07-02 -> v1.54

           - Fixed a bug first reported by Tim Foden that caused Pepito to crash
             when a game lasted longer than 150 moves.

           - Corrected a bug in bit packing hash entries.

           - UCI stuff:

               Fritz GUI doesn't like the fact that an uci engine doesn't have
               EGTB cache size adjustable by the user or so I've been told.
               Pepito couldn't use Nalimov tablebases under CB because of this.
               Solved.
 
               Minor bug in printing the PVs in UCI mode that caused some weird 
               scores here and there. However it didn't affect play strength.

           - Added new endgame knowledge. Now it will recognize "wannabe passer"
             pawns.

           - Improved move ordering, SEE function was broken !?

           - The special driver routine for KBBvsK endgames allways was scoring
             positive for the white side. Nice side effects when white has no
             bishops. Oh well...

           - Oh and there is this other cute bug reported by Dann Corbit. If
             there is some sort of ELO improvement it will most probably come
             from problems related to this.
             Here's the relevant position:

             6k1/5pp1/p7/1p1p4/1P3P2/2P2qPp/1P1Q3P/6K1 w - -
 
             Pepito played a reallly inspiring move here, Qd4 and mate in 1
             (against itself, naturally).

           - Fixed ep square problem while reading FEN positions.

           - Added code to handle the "pawn about to promote & missing
             tablebase" isssue.

           - Dann messed a bit with the time managent internals so it will now 
             spend more time than it used to in games with fixed length duration
             and also the ones with time increment.

           - Implemented an idea by Dieter to control null move pruning in
             endgames, so that some posititons were Pepito would fail because of
             a zugzwang (is that right?) situation is on the board will get
             solved correctly. It's cute.

           - Corrected a bug in the move generator. Yes incredible! I still
             have bugs there. I don't know how it even plays chess at all :-)
             It had something to do with capturing en passant while in check,
             I don't remember the details.

           - Yet another twist on king safety code. Added three game styles:
             solid (default), normal, aggressive.

           - Played a bit with search extensions. 

           - Rewritten all the book handling routines (yep, new book format).
             I've adopted a B-tree data structure so it scales better to bigger
             books. Opening book doesn't get loaded into the hash table anymore.
             Pepito will grab around 1 MB for caching when in book just to free
             it after it's no longer needed. Old code was hardly readable...

           - Who knows.

29-07-02 -> v1.55

           - Recent code migration to separate uci/xboard modules caused several
             bugs in uci compatibility: setting up a position, time control X
             moves in Y minutes, using ownboook when it shouldn't and fixed
             depth searches.

           - As I was tracking down the uci bugs I found another cute one in the
             root search. Root moves were being searched twice !? (reason I
             hadn't noticed is the search overhead is small because of the hash
             table; probably I introduced this while adding new book facilities)

           - Pondering was broken in xboard mode (it actually didn't ponder).

           - Fixed a bug that caused Pepito to crash in Leo's WBEC tournament.
             Itera function was called with no legal moves available.

           - New features:

                Added multipv analysis support.

                Mate scores are displayed correctly now in uci instead of
                +99XX. I wonder why I never got to implement that :-)

08-02-03-> v1.59

           - I've been very busy these past months, so don't expect big
             improvements from this version. There are new features that
             might be interesting to some guys out there, so I felt like it
             was about time to drop a new version.

           - Improved endgame knowledge for king & pawn endgames. Two passers
             can be recognized as unstopable even if they arent't when
             cosidered separately.

           - More aggressive pruning near the leaves of the search tree, by
             means of an evaluation function plus static exchange evaluator
             function trick invented by Don Deal.

           - Added the ability to execute commands just after booting by
             specifying a BATCH_FILE entry in config.dat.

           - Pepito is capable of importing Fritz .fbk books and Beowulf's
             books (I like this format, maybe we could agreee to a standard
             here for importing/exporting books).

           - PGN logging games in xboard mode along with search information
             for each move.

           - Corrected yet another bug in the SEE function. I was trying to
             bee too smart to avoid extra work and it simply didn't work
             correctly in some positions.

           - Pepito will now kibitz search information when playing on an
             Internet Chess Server (added for CCT5).

           - Sort of opponent book learning: If we get outbooked and we lose
             the game, book moves of the opponent are added to our own book
             (xboard only).

           - Fifty move rule not working (now it does). Whoops!

           - More reliable book building: the engine won't exit anymore when
             finding incorrect PGN (or thought as incorrect ;-)) while
             building books. It will generate a warning and skip the
             current game.