v 0.6 beta 17 ====== - cyrano was playing too fast, changed the time allocation a bit - added experimental pthreads support - compilable under linux - should run under linux (no testing done) - some cosmetic change for less warnings in g++ compile v 0.6 beta 16 ====== - bug correction : - incorrect end game recognizer used in some positions - incorrect Q vs P eval in some positions v 0.6 beta 15 ====== - more traditional search (no node count decision) - new time management (update#3, thx Lars) v 0.6 beta 10 ====== - added fixed node count support in uci & wb mode (go nodes xxx & sn xxx) - increased king safety value - increased passed pawn value - search uses node count to make decision v 0.6 beta 8 ====== - mate distance should be correct now v 0.6 beta 4 ====== - bug correction : - incorrect pruning of some kind of moves in qsearch v 0.6 beta 2 ====== - bug correction : - storing the pv in the hash table was buggy and could lead to an incorrect search v 0.6 beta 1 ====== - changed move ordering to mvv/lva - enabled futility pruning at frontier v 0.5 beta 11 ====== - code optimization - added some endgame eval heuristics v 0.5 beta 9 ====== - rewritten the search a bit - there was a bug with the eval cache and path dependant eval... - removed perpetual check detector because of side effects v 0.5 beta 7 ====== - changed the order of captures - corrected a lot of bugs v 0.5 beta 7 ====== v 0.5 beta 6 ====== v 0.5 beta 3 ====== v 0.5 beta 2 ====== - disabled fm extension - changed lmr condition (a bit less reductions) - reworked eval (mobility and rook constants) - more end game recognizers - more draw recognizers - added eval scalers - new king eg pst, pawn pst, knight pst v 0.4 ====== - removed some debug spam v 0.4 beta 7 ====== - king safety rewritten - razoring used instead of futility pruning v 0.4 beta 6 ====== - bad lines could be choosen from book - new book - less reductions/pruning v 0.4 beta 5 ====== - added BM extension - code optimisation - new book - new eval v 0.4 beta 4 ====== - eval tuned a bit - bug correction : - incorrect detection of backward pawns, candidate pawns v 0.4 beta 3 ====== - slight change of time control - better transposition table aging - handling of fixed search depth in uci mode - correct a bug in passer eval, king safety, knight outpost - tuned a lot in the eval - changed the repetition detection - bug correction : - the time increment was not used in WB mode v 0.4 beta 2 ====== - more reductions - stand pat verification in qs - better move order in pv with TT score and search - eval : - pawn eval - bug correction : - incorrect value of minors in end game in some conditions - incorrect backward pawns v 0.4 beta ====== - disabled the PV HT hit extension (it was fun but too many nodes sometimes) - allowed more extensions on check - nm search stored in hash - reduced futility magins - re-enabled check in qs - added 32bits magics - a few optimizations in the move generator - lines from the opening book should be a bit random now - eval : - trapped bishop - more penality if we can not castle - perhaps less 'yoyo' scores - 'activity' rewritten - more bonus for rook on open files - better passed pawn eval - changed king safety - bug correction : - severe shift bug with the Intel compiler in the initialization code (/O2 build) - imbalance material bonus condition was incorrect, bonus was often added... - good promotions could be prunned in QS - candidate pawn detection was erronous v 0.3 ====== - adjustment in some eg recognizers - probing of Scorpio bitbases (param -bs c:/tb/egbbs_3_4) - disabled - handling of UCI_ShowCurrLine - disabled check in qs (there is something bugged here) - added razoring - added an evaluation cache, disabled lazy eval - changed knight outpost eval - changed mobility to simple eval again - bug correction : - wrong bonus for pawn files v 0.3 beta3 ====== - 4 buckets transposition tables - tweaking of lmr conditions - better time management - bug correction : - bad bounds in hash table - bad lmr condition v 0.3 beta2 ====== - less re-search after a reduction - end game recognizers - a few other changes in the eval - bug correction : - promotion bug when the pawn captures a pinner v 0.3 beta ====== - tweaking of futility pruning and lmr conditions - deeper search inside the pv - mobility/activity evaluation changed a bit - evaluation of interior nodes - added a bit of king safety in the eval - a few other changes in the eval - qs search stops earlier - changed a bit the time allocation - bug correction : - the engine should not resign in uci mode (wb only) - cyrano could run out of time on his last move in tourney time control - non capture pawn promotion to queen was missing on check evasion v 0.2f ====== - bug correction : - non capture pawn promotion to queen was missing on check evasion, thx Dietmar v 0.2e ====== - bug correction : - cyrano could run out of time on his last move in tourney time control, thx Graham v 0.2d ====== - changed lmr condition - changed check extension (don't extend first check) - evaluation tweaking - bug correction : - in uci mode, handling of o-o & o-o-o for castling - hash was cleared in setposition, not good for uci mode - hash date was checked (old debug code), not good for tournament - time increment was not handled in uci mode v 0.2c ====== - better development in openings - bug correction : - bug in parsing of the time control under uci v 0.2b ===== - uci pv output is from-to now - support of longer games in uci mode v 0.2 ===== - added mate killers - no null move when stand pat score can not reach Beta - better support of uci procotol : - ponder should work - hash table size settable - book file name settable - changed evaluation : - better scoring in endgames : minor pieces values, opposite bishop color, pawn structure, king evaluation - backward pawns - center control by pawns, space - better evaluation of king castle, also it should castle earlier now - new computation of mobility - bug correction : - eval : serious error in the ratio bonus computation - protocol : overflow in input buffer when replaying long games v 0.1f ====== - changed qs pruning margin (less pessimistic now) - internal iterative deepening - SEE to find out if a capture is bad or good (move ordering) - semi safe square move ordering for non capture moves/ or history counters - updated futility pruning - kpk endgame uses a bitbase now - adaptive null move pruning - verified null move - checks in first ply of QS - partial support of uci protocol - check extension enabled again, but reductions are now allowed after extension - mate threat in null move does not extend the search - root move ordering should be more stable now - using killers from previous ply too for move ordering - a bit of lmr - bug correction : - wrong lower/upper bound was stored in hash - corrected (?) mate distance pruning - updated hash mate scores with ply - stand pat score wrongly initialized in QS - wrong search window in some situations v 0.1e ====== - pawn push to 7h extension - changed the bonus value of candidate/passed pawn in endgames - added endgames rules for a/h pawn and bad bishop - recapture extension - bug correction : - knight/bishop value in endgames - lazy eval was incorrectly used in endgames - white promotions could be pruned - wrong initialization of check flag when setting a position - wrong material value table in QS pruning - stats and killer moves where not intialized when the pondered move was correctly guessed - illegal move was generated with a black king in front of a pinned pawn v 0.1d ====== - score was inverted (1-0 instead of 0-1) - evaluation changed (pawn defense/attack, position tables) - corrected mobility computation - corrected a few array overflows - corrected optimizer bug in hash.cpp - futility pruning enabled again - changed move ordering - mate threat in null move - null move bug corrected v 0.1c (20070913) ====== - Annoncement colors where inverted (black resigns instead of white...) - check extension and futility pruning was bugged - futility pruning disabled for now - adjusted the evaluation (piece/square value, tempo counter) - a little better time control handling when the pv is worse than the previous pv found v 0.1beta is derived from Gerbil with the following changes ======================================================= - null moves are no more done when inside the pv - all moves are sorted, not just the four first - the aspiration window search was changed to a null window search - added killer moves - transposition tables only use a depth replacement scheme for now - the pawn hash table now contains more data about the pawn structure, not just a score (bitboards are computed for isolated, doubled, blocked, and passed pawns) - the eval function was rewritten, it - recognizes some endgame draw positions (insufisant material) and scores them accordingly - gives a stronger bonus for candidate/passed pawns - some basic bonus/malus for bishop and knight - includes the mobility - rooks on open file - primitive board square control - quiescent search should better handle mat/pat positions - included the magicmoves from Pradyumna Kannan - changed the move generator to use bitboards (move generator from Jacob Hales) - new book from (polyglot book format) - basic futility pruning