Version 0.42 (2009.10.08)
=========================
* New eval terms: knight and bishop outposts
* Candidate passed pawns, distant passer, pawn races, pawn storms
* Passed pawns: bonus/penalty for friendly/enemy king proximity
* Toned down king safety term
* Added some endgame evaluators (KPK, KBNK, KRKP, ...)
* Internal KPK bitbase
* Bugfixed and enabled razoring
* En passant capture now clears 50 move rule counter
* fixed SEE for en passant capture
* fixed discovered checks in qsearch

Version 0.40 (2009.07.26)
=========================
* fixed a memory corruption bug
* MultiPV support
* improved passed pawn eval (protected passer, friendly/enemy rook behind passer)
* improved mobility eval (counting pseudo-safe squares)
* more agressive pruning/reductions
* 4 slots per transposition table entry

Version 0.39a (2009.06.12)
==========================
* bugfix release only - playing strength same as plain 0.39
* fixed a crash when engine wants to display a PV and there is no PV available yet
* fixed a deadlock when input thread receives 'ponderhit' before thinking thread started to ponder
* fixed PV display when running under polyglot (was sending algebraic notation instead of coordinate)

Version 0.39 (2009.06.07)
=========================
* fixed a bug in attack table generation (which caused misbehaving king safety eval)
* added LMR and futility pruning
* added zugzwang verification search
* tweaked time management
* draw by insufficient material detection
* pondering

Version 0.38 (2009.05.19)
=========================
* First version with real evaluation function
* pawn structure, king safety, piece mobility, development, etc.
* very ugly, untuned, but 100 elo stronger than 0.37

Version 0.37 (2009.05.01)
=========================
* Opening book support
* New commands "makebook" and "mergebook" for book creation from pgn files

Version 0.36 (2009.04.26)
=========================
* smooth transition between midgame and endgame scoring in eval
* rewritten / simplified move generator, tweaked move ordering
* temporary workaround for a timing problem which caused forfeits on time

Version 0.35 (2009.04.20)
=========================
* SEE rewritten from scratch, now its slightly faster and much more accurate (previous implementation was very buggy)
* QSearch is now divided into 3 methods: Quiesce, QChecks, QEvasions
* Changed internal representation of pieces - all pieces are unsigned, bit 0 = color, bits 1-3 = piece, all sliding pieces have bit 3 set

Version 0.34 (2009.04.16)
=========================
* checks in first ply of quiescent search
* null-move always with R=3
* fixed one-reply search extension
* fixed a bug that caused mate scores to be off by 1 ply
* built-in epd test, command "epdtest <filename.epd>"

Version 0.33 (2009.04.09)
=========================
* fixed a bug in transpositon table, entries with same depth were not overwritten in depth-prefered part of hash table. this caused significant search instability problems
* temporarily switched off IID - it seems it doesnt help much, sometimes even hurts

Version 0.32 (2009.04.08)
=========================
* avoiding null-move in pv-nodes
* avoiding null-move when a TT hit tells it will not fail high
* mate values depth-adjusted before TT store / probe
* when aspiration window fails at root it is widened in 3 steps

Version 0.31 (2009.04.04)
=========================
* failing soft instead of failing hard
* switched back to MVV/LVA capture ordering (after separating losing captures by SEE)
* root moves ordered by nodecount from previous iterations

Version 0.30 (2009.04.02)
=========================
* workaround for a bug when movegen.ply != search ply (eg after null-move)
* other minor bugfixes

Version 0.29 (2009.03.28)
=========================
* resizable hash table using UCI 'setoption hash'
* internal iterative deepening when no hashmove found
* fixed a bug in 3-fold repetition detection
* fixed a bug in qsearch mate detection

Version 0.28 (2009.03.26)
=========================
* added null move pruning (R=2)
* incremental move generation
* losing captures ignored in qsearch
* check evasions in qsearch

Version 0.27 (2009.03.24)
=========================
* early move legality testing (saves time making/unamking the move)
* fast checking move detection
* added evasion generator
* added search extentensions (check, pawn on 7th)
* 274/300 in WAC (10s/move)

Version 0.26 (2009.03.19)
=========================
* fixed bugs in transposition table code
* restructured makemove/undomove methods, many other code cleanups
* 225/300 in WAC test (10s/move)

Version 0.25 (2009.03.16)
=========================
* improved attack chcecking code, exploiting feautres of the new 0x88 board
* sligtly improved move generation
* fixed few minor bugs in SEE
* implemented transposition table (somewhat buggy for now)

Version 0.24 (2009.03.14)
=========================
* board class and move generator rewritten to use 0x88 board representation
* implemented static exchange evaluation
* separate piece-square tables for game ending (for pawns and king)
* scores 204/300 in WAC test suite (10s/move on Athlon 64 4000+)

Version 0.23 (2009.03.09)
=========================
* added piece-square tables for all pieces
* added killer move heuristic
* changed move representation from struct to single integer

Version 0.22 (2009.03.06)
=========================
* optimized castling rigts status update
* fixed UCI command "stop"
* added support for "go infinite" in UCI
* added full/half move counters to FEN output
* implemented zobrist key calculation
* implemented 50-move rule
* implemented 3-fold repetition detection

Version 0.21 (2009.03.04)
=========================
* slightly better move ordering
* stops deepening when mate found
* stalemate now evaluates to SCORE_DRAW
* many bugfixes

Version 0.2  (2009.03.03)
=========================
* Added quiescent search
* Root moves are now sorted by scores from previous iteration

Version <=0.1  (2009.01.17 - 2009.03.01)
=========================
* basic move generator using int[64] board representation
* standard alpha-beta search with iterative deepening
* very simplistic evaluation (material + simple piece-square table)
* MVV/LVA ordering for captures, history heuristic for noncaptures
* UCI protocol support
