CHANGES SINCE THE LAST VERSION
==============================

 * 2.23: (2008-07-26):
 *                    Too much to give a full list as it comprises of over a year of active development
 *                    but the changes include:
 *                    Many,many evaluation changes
 *                    Some more options are configurable (check out the baron.ini file for this)
 *                    LMR included as an option
 *                    
 * 1.8.1: (2006-05-10):
 *                    Evaluation changes
 *                    Fixed a hashtable bug
 *                    Changes to search extensions
 *
 * 1.8.0: (2006-02-28):
 *                    Many changes in evaluation
 *
 * 1.7.0: (2005-08-25):
 *                    Using portable POSIX threads instead of the Windows SDK
 *                    This requires an additional DLL to be present
 *                    As a result, the Baron will also be available as in a linux version
 *                    Endgame enhancements
 *                    Recapture extensions further limited
 *
 * 1.6.1: (2005-06-12):
 *                    Improved scoring of weak pawns
 *                    Several evaluation fixes
 *                    Added deflected knight knowledge for knight endgames
 *                    
 * 1.6.0: (2005-03-13):
 *                    Botwinnik/Markoff extensions added, but by default turned off
 *                    History pruning added, but by default turned off
 *                    Fixes in evaluation and moveordering
 *                    Reduced EGTB probing
 *                    Changed king-safety in endgame
 *                    Supports 6-men EGTB's
 *                    Improved allocation of extra time
 *                    
 * 1.5.0: (2004-10-25):
 *                    Improved moveordering
 *                    Code cleanup, simplification
 *                    Improved handling of extensions
 *                    Removed buffer-overrun error
 *                    Reinserting PV in hashtables
 *                    Checking moves in quiescense
 *                    Many evaluation improvements and bug fixes
 *                    Changed the aspiration windows
 *
 * 1.4.0: (2004-08-03):
 *                    Endgame evaluation error corrections
 *                    Several improvements in endgame knowledge
 *                    Improved assessment of development
 *                    Material imbalances improvements
 *                    King safety configurable
 *                    Sacrifices configurable
 *                    Material values configurable
 *                    Bugs in internal iterative deepening solved
 *                    Several bug fixes
 *                    Timemanagement bugs solved
 *                    Comments in .ini file
 *
 * 1.3.0: (2004-04-26):
 *                    Revised the material imbalances code
 *                    Easy-move
 *                    Evaluation of space
 *                    Different method of limiting extensions
 *                    Several bug fixes
 *                    Moveordering improvements
 *                    Endgame evaluation improvements
 *
 * 1.2.1: (2004-02-25):
 *                    Several bug fixes
 *                    Minor moveordering improvements
 *
 * 1.2.0: (2004-02-16):            
 *                    Restricting research when matescores were returned in an
 *                    earlier search
 *                    Corrected rootnode moveordering errors
 *                    Major update of pawn evaluation
 *                    Configurable resignscore
 *                    Returning real drawscores
 *                    Offer draws
 *                    Added learning
 *                    Error in timemanagement corrected when playing with external book
 *                    Nullmove improvements
 *                    Improved timemanagement with non-blitz timecontrols
 *                    Improved output
 *                    Terminating iterations when hitting tablebases
 *
 * 1.0.6 (2004-01-25):
 *                    Errors in timemanagement corrected when using external book
 *
 * 1.0.5 (2004-01-18):
 *                    Errors in SEE corrected:
 *                    - Now correctly handling promotions
 *                    - Correctly handling captures by the king
 *                    Corrected an error in nullmove reductions
 *                    Corrected hash aging error
 *                    Corrected several minute errors, not worth mentioning
 *
 * 1.0.4 (2003-11-25):
 *                    Error in timemanagement corrected
 *                    Error in rootnode moveordering corrected
 *                    Small transposition hashtable improvement
 *
 * 1.0.3 (2003-07-19) (not released):
 *                    Support of extended level command.
 *
 * 1.0.2 (2003-07-17):
 *                    Corrected several major (and minor) bugs in evaluation
 *                    Adjusted evaluation
 *                    Removed bug in mate/stalemate detection
 *                    Corrected bug in resigning
 *                    Added simple stalemate detection (with king+pawns) in evaluation
 *                    Changed recapture extensions
 *                    Improved (root) move ordering
 *                    No longer hangs after receiving a 'dot' when not yet analyzing (Arena)
 *                    Corrected errors in internal testing code
 *                    Added ETC based moveordering
 *                    Added moveordering tweaking parameters to baron.ini
 *
 * 1.0.1 (2003-05-25):
 *                    Corrected fault in drawn endgame detection
 *                    Corrected hashtable fault
 *                    Adjusted evaluation
 *                    Added Fischer Random Chess (requires FRC package)
 *
 * 1.0 (2003-05-18):
 *                    Pick move ordering
 *                    Corrected errors in king safety
 *                    Corrected error in hash probing
 *                    Improved bad trade scoring
 *                    Improved weak pawn scoring
 *                    Improved passed pawn scoring
 *                    Improved pawnless endgame
 *                    Added Bishop Long diagonal evaluation
 *                    Several evaluation parameter tweaks
 *                    Configuration file name can be passed as a commandline parameter
 *                    Book filename can be specified in the configuration file
 *                    Time usage depending on opponent time usage
 *
 * 0.99.5 (2003-02-02):
 *                    Log off now working
 *                    Terminate when board is corrupted (no more long logfiles)
 *                    Improved king safety (hopefully reduced the number of dumb sacs)
 *                    Larger command buffer (to solve problems with long games and the
 *                    Chessbase winboard adapter
 *
 * 0.99.4 (2003-01-29):
 *                    Setboard now accepts full FEN strings (including halfmove
 *                    and fiftymove rule counters)
 *                    Hashing mate threats in the transposition table
 *                    Corrected more faults in repetition detection
 *                    Tweaked evaluation parameters for pawn scoring
 *                    Added cause of a draw score in the PV
 *                    Corrected fault in fixed search depth
 *                    Endgame enhancements
 *                    Prevent trading of pawns in the endgame when the engine has more material
 *                    Penalize king safety when there are no defending minor pieces
 *                    If pawns in the king pawn shield are isolated, give a penalty
 *                    Extensions are less restricted
 *                    Reduced the number of calls to SEE for move ordering a little
 *                    Enabled printing of some more statistics after moving (console mode and logfile)
 *                    Set logging behaviour in the log files
 *                    Removed lazy eval
 *                    When Baron has castling rights, the pawn shield of that side is weighted in
 *                    king safety, but only if it is better than the 'pawnshield' of the centre.
 *                    Improved move ordering
 *                    In a pawn endgame, value a pawn at 125 to prevent piece exchange when
 *                    Baron has less pawns.
 *                    Removed futility pruning
 *                    Added simple SMP support for 2 processes
 *                    Corrected EGTB probe score
 *                    Various bugs in I/O handling solved
 *
 * 0.99.3 (2002-11-16): 
 *                    Separate thread for writing output
 *                    Logging Input and Output and Additional information to File
 *                    Removed several faults concerning stability
 *                    Corrected fault in hashing (adding ep rights and castle mask to hashkey)
 *                    Openingbook format changed
 *                    Added piece tropism in evaluation
 *                    Redesigned board control code
 *                    Improved passed pawn evaluation
 *                    Removed severe evaluation bugs in pawn scoring
 *                    Removed bug in maintaining the material balance after an en-passant capture move
 *                    Removed bug in queen and rook scoring
 *                    Added king safety knowledge
 *                    Added early queen development penalty
 *                    Improved bad-trade scoring
 *                    More careful repetition detection
 *                    Corrected Mate scores
 *                    Corrected adjustment of alpha/beta on hashtable score bounds
 *                    Now also handling the time and draw commands when pondering
 *                    When search fails on an aspiration window, the research includes this window
 *                    SEE cutoffs on promotion moves in quiescense
 *                    More careful SEE pruning in quiescense
 *                    Winboard Protocol version 2
 *                    Kibitzing/Whispering while playing on a chess-server
 *
 * 0.99.2:            Corrected the 'edit' command.
 *                    Added support for the chessbase winboard adapter
 *                    Added critical sections in thread communication.
 *
 * 0.36 (2002-09-26): Improved the checks on the correctness of a position after 'setboard' 
 *                    or 'edit'
 *                    Changed piece-square tables for pawns
 *                    Corrected fault in connected passed pawn scoring
 *                    Eval tweaks
 *                    No longer pruning in endgames with little pieces on the board
 *                    Increased max search depth to 64 ply (including extensions and qsearch).
 *                    Use SEE for moveordering instead of MVV/LVA
 *                    Added hidden passed pawn evaluation
 *                    Added pawnduo bonus
 *                    Removed ponder bug when pondering stops (due to egtb or single response)
 *
 * 0.99.1:            New winboard protocol code with Full winboard 1 support.
 *                    Baron now reads input in a separate thread.
 *                    Select a ponder move when in ponder mode (no hashtable filling analysis anymore)
 *                    Please report stability problems (and other bugs) to the author
 *
 * 0.35 (2002-08-29): Corrected fault in console prompt
 *                    Corrected fault in SEE
 *                    Improved adaptive nullmove pruning (includes fractional R between 2-3)
 *                    Corrected fault in time management when failing low
 *                    Corrected sign while pondering (now shows score from the
 *                    perspective of the computer player, not side to move)
 *                    Improved passed pawn evaluation
 *                    Improved board control evaluation
 *                    Improved doubled pawn scoring
 *                    Improved rook mobility scoring
 *                    Corrected and improved weak pawn scoring
 *                    Fractional extensions, including
 *                    - Singular reply extension
 *                    - Recapture extension
 *                    - Pawn Push extension
 *                    Replaced Razoring by Futility pruning + limited razoring
 *                    Removed unused datastructures
 *                    Added bad-trade scoring
 *                    Tweaking of many evaluation parameters
 *
 * 0.33 (2002-06-20): Corrected fault in quiescense check-evasions
 *                    Corrected fault in quiescense promotion moves
 *                    Using SEE for quiescence move selection and ordering
 *                    Added penalty for loss of castling rights
 *                    Added bonus for Queen attacking/defending passer
 *                    Added side to move and move number in console prompt
 *                    Added crude pawnracer evaluation
 *                    Corrected fault in hashed matescores
 *                    Added more statistics in bench output
 *
 * 0.32a (2002-06-05):Improved Hashtable aging
 *                    Enabled Resigning again
 *
 * 0.32 (2002-06-02): Corrected fault in double nullmove
 * 'Leiden'           Added knight outpost evaluation
 *                    Improved trapped bishop scoring
 *                    Improved passed pawn scoring
 *                    Improved bishop pair evaluation
 *                    Improved backwards pawn scoring
 *                    Reduced tablebase probes during search
 *                    Added rambling rook and stalemate detection in
 *                    evaluation
 *                    Added threat extensions
 *
 * 0.31 (2002-05-17): Double Nullmove
 *                    Piece Mobility
 *                    Hanging Piece evaluation
 *                    Reactivated (less) lazy evaluation
 *                    Increased king safety knowledge
 *                    Corrected pawn evaluation bug
 *                    Close baron.ini after reading it
 *                    Use more time when dropping out of book
 *                    Reduce time spent when failing high bigtime
 *                    Added odd-bishop ending knowledge
 *                    Removed printing the board during execution of test
 *
 * 0.30 (2002-04-14): Corrected fault in timemanagement when pondering
 *                    Removed annoying fault in moveordering and improved
 *                    moveordering at the rootnode
 *                    Start of restructuring main engine operation
 *                    Tweaked evaluation parameters
 *                    Refuse to start without a transposition table
 *                    Solved a major bug in analysis mode while in book
 *                    Added resign and draw accept feature
 *                    Corrected fault in farthest passer code
 *                    Removed lazy evaluation (temporary)
 *
 * 0.29 (2002-03-07): Solved bad bug in evaluation that caused rooks to like
 *                    to move to ay and h7
 *                    Solved bug in detecting mate and stalemate during search
 *                    Removed fault in opening book code that allowed
 *                    repetitions
 *                    Solved bug in repetition detection
 *                    Better timemanagement when using increments
 *                    Improved passed pawn code (passer on 7th row)
 *                    If a matescore is found Baron now keeps on looking
 *                    for a more efficient mate until a sufficient searchdepth
 *                    is reached
 *
 * 0.28a(2002-02-07): Bug in access of EGTB's solved (was introduced in 0.28)
 * 0.28 (2002-02-07): Enabled playother command (was implemented but disabled incorrectly)
 *                    Enabled analyze command in console and chessbase mode (see above)
 *                    Stop pondering after a result is received
 *                    Now able to receive 'new' command while thinking
 *                    Use hashtables during quiesce search
 *                    Smaller transposition hashtables
 *
 * 0.27 (2002-02-04): Corrected major problem in pawn-promotions while
 *                    pondering
 *
 * 0.26a(2002-01-31): Corrected fault in timemanagement while pondering
 * 0.26 (2002-01-26): Corrected fault in searchextensions
 *                    Corrected fault in aspiration search
 *                    Corrected faults in time management
 *                    Corrected fault in minorpromotions
 *                    Added internal iterative deepening
 *                    Enabled Quiescense check evasions
 *                    Separate piece-position score depending on phase of the game
 *                    Added Queen and Rook piece-position scores
 *                    Enabled major part of rook and pawn evaluation
 *                    Improved passed pawn scoring
 *                    Corrected/Enabled good-bad bishop evaluation (still crude)
 *                    Major tweak of eval parameters
 *                    Measuring searchnodes and quiescense nodes separately
 *
 * 0.25a (2001-01-01): Time problem with time increments solved
 * 0.25 (2001-12-26): Speed improvement in move generation
 *                    Openingbook added
 *                    Problem with timemanagement found and solved. Problem was present
 *                    since 0.14
 *                    Polling for input now 1/8192 nodes instead of 1/1024
 *                    nodes (about 15 times a second anyway).
 *                    Configuration of egtb cache from the configuration file
 *                    Configuration of hashtable size now in kilobytes, not levels
 *
 * 0.24 (2001-12-24): Solved ep bug (black cannot take ep) that was introduced in 0.23
 *                    Corrected an ep bug in quiescense search (has always been there).
 *                    Sending version number with 'feature name'.
 *
 * 0.23 (2001-12-22): Interpreting some commands during search.
 *                    Fixed odd bug when giving the commands black and white 
 *                    while pondering and after having played a pawn two squares forward
 *                    Fully implemented Winboard version 2 (and 1) except:
 *                       edit, bk, usermove, ics, pause, resume.
 *                    Limitation: Analyze and pondering always restart when input
 *                    is received.
 *                    Limitation Some of the 'implemented' commands are still a no-op.
 *                    Added xboard as a parameter to the program to handle startup better
 *                    (sending 'feature done=0' to make sure that startup is handled
 *                    completely before progressing.)
 *                    Random function for hashtables replaced by a repeatable one to be
 *                    used with an opening book and position learning.
 *                    Removed empty rows on fail high/low
 *                    Killers implemented
 *
 * 0.22 (2001-12-10): Blitz time control implemented
 *                    Claim draw on insufficient material
 *                    Separate control routines for Winboard ver1, ver2 (not implemented
 *                    yet) and chessbase
 *                    Pondering now really working and tested!
 *                    Corrected use of Nalimov tables
 *                    Good/bad bishop eval removed: It was faulty
 *
 * 0.21 (2001-12-09): Hashing fault corrected, prevents ugly mistakes when winning
 *
 * 0.20 (2001-12-07): Major speed improvement (50%)
 *                    Size of static evaluation hashtables increased 10%.
 *
 * 0.19 (2001-12-07): Even more careful time usage
 *                    Added good/bad bishops
 *
 * 0.18 (2001-12-06): Corrected fault in attack function
 *
 * 0.17 (2001-12-05): More careful time usage
 *                    Minor eval tweak
 *
 * 0.16 (2001-11-29): Minor errors corrected
 *                    Rewrote attacks function (5x as fast)
 *                    Speed increase in eval (10%)
 *                    Error on only move and no pv solved
 *
 * 0.15 (2001-11-18): Pondering added
 *                    Removed implementation of the command 'hint'
 *                    Command for resizing transposition hashtables
 *                    Command for resizing evaluation hashtables
 *                    Nr entries in hashtables is power of 2
 *                    Added bishop pair bonus
 *                    Commented out rotated bitboards on history stack
 *
 * 0.14 (2001-11-14): Corrected fault in Winboard output of the pv
 *                    Play move immediately if it is the only legal move
 *                    Increased passed pawn bonusses
 *                    Corrected static pawn evaluation
 *                    Fault in parsing 'setboard' corrected
 *
 * 0.13 (2001-11-13): Finished the single main-loop for winboard and console mode
 *                    Skip scout when window was already zero.
 *                    Fixed PV tracking bug
 *                    Redone hashing and hopefully finally removed the bug
 *                    Sorting all moves in one go
 *
 * 0.12 (2001-11-12): Enabled Tablebases code (disabled since version 0.04)
 *                    Created InputMove to replace inline code
 *                    Created ParseCommand to parse commands in the main loop
 *                    Fixed bug in static evaluation for black
 *                    Improved backwards pawn handling
 * 
 * 0.11 (2011-11-11): Only prune at ply 2 and deeper and while not in check
 *                    Removed debugging code which should already have been removed
 *                    Found and removed hashing bug where the previous position
 *                    was used as key in the hashtable instead of the real position
 *                    This improved the WAC test with 20 more correct positions.
 *
 * 0.10 (2001-11-10): Redesigned passed pawn scoring. Also value connected passers.
 *
 * 0.09 (2001-11-09): Fixed passers bug when pawnhash had a hit
 *                    Store passers on the pawnhashtables
 *                    Fixed major pruning bug
 *                    Created lazyeval for pruning purposes
 *                    Used PHashElt struct for local data in eval
 *                    Solved bug in evaluating passers
 *                    Include King positions in pawn hashtables
 *                    Solved hash bug with promotion
 *                    Cleanup of hashkey maintenance during moving using macro's
 *
 * 0.08 (2001-11-08): Tweaked position bonusses of pieces
 *                    Added support of passed pawns supported/blocked by rooks or queens
 *                    Shuffled routines around, created new source file util.c
 *                    Extended negascout principles to all nodes (with depth > 2)
 *                    Found bug in repetitions, rewrote it using hashkey's
 *                    Fixed pv bug, now always starting at pv
 *                    Finished the test command
 *
 * 0.07 (2001-11-07): First step to bitboards (pieces and pawns)
 *                    Restructured making and taking back moves
 *                    Added pawn hashtables
 *                    Remember position of kings
 *                    Remember material score (elimination of first eval pass)
 *                    Use pawn bitboards (elimination of first eval pass)
 *                    Two pass evaluation routine reduced to one pass
 *                    Bug in king safety solved in case of enemy doubled pawns
 *                    Implemented the test command for performing testsuites 
 *                    (not functioning)
 *                    Futility Pruning and Razoring enabled, using lazy eval
 *                    Redesigned Bench with multiple positions and configurable depth
 *
 * 0.06 (2001-10-21): Changed hashkey to 64 bits.
 *		      Added the command 'quit' to exit as well
 *		      Changed the quiescence search to include all moves when in check
 * 		      Using move in the hash table directly after the pv
 *		      Added futility pruning and razoring, but commented out due to
 *                    bad performing eval
 *		      Created separate function searchroot, called from think
 *                    and calling search for handling the root node.
 *		      Created extended AB window when search with normal AB window fails
 *
 * 0.05 (2001-10-17): Fixed time bug causing flagging at the last move before time control
 *                    (*version blunders regularly. Cause not yet found *)
 *
 * 0.04 (2001-10-17): Added hashtables (64Mb)
 *                    Restructured board.c to defining public read-only
 *                    variables for board representation.
 *                    Fixed bug in blitz time controls (division by zero)
 *                    Fixed bug in history after white and black commands
 *		      Added numerous assert statements to fight the crashes
 *                    Added alpha-beta windows
 *                    Tablebase probes temporarily disabled due to frequent crashes
 *
 * 0.03 (2001-09-17): Added Tablebases support
 *                    Added the command '?' to force a move in xboard mode
 *                    (*unstable version due to tablebases*)
 *
 * 0.02 (2001-08-31): Added the command 'level' for better time usage
 *                    on time controls.
 *                    Removed overflow bug from get_ms()
 *                    Changed the board representation to a single array. Color
 *                    is now included in the piece id. Color array is removed.
 *
 * 0.01 (2001-08-29): First version of Baron, only rename TSCP to baron
 *
