Bright development history
==========================

200910820 version 0.5c, public since 2010-01-10
==============================================================================
fix:
- frc: UCI CastleNotation option (O-O, KxR, or 'smart') was not selectable by GUI
       (this specifies how castles moves are send to the GUI, bright will accept
        any notation) (reported by Ray Banks)


20090810 version 0.5b (private)
==============================================================================
changes:
- frc: added an UCI option to specify the castling notation (O-O, KxR, or 'smart')

fixes:
-smp      : reduced memory usage for unused threads (Pawnhash @ 4Mb/thread)
-frc      : A castle move would be send as 'g1g1' if the King was already on g1.
            (reported by Alexander Schmidt)
            Now defaults to KxR in 'smart' mode.
-nps      : true nodes per second is reported (was: nodes per millisecond)
-pondering: On some machines, Bright would sometimes hang after a ponder hit 
            (reported by Olivier Deville)


20090626 version 0.5a (private)
==============================================================================
changes:
-smp : slight search enhancements
-book: new book format (old format still supported) 
-book: new move selection logic (see ini-file for options)

fixes:
-frc : all fixes upto version 0.4a3 have been integrated



200902?? version 0.4cct1 (private)
==============================================================================
Version that played CCT11 and finished 3rd (standard) and 2nd (blitz)

changes (from 0.4a):
-eval: tuned king safety (less agressive)
-eval: tuned rook mobility (when few moves)
-eval: tuned stm bonus
-eval: tuned pawn evaluation ((passed) pawn location values)
-search: null move enhancements
-search: mate killer enhancements

fixes:
- winboard support should actually work



20090401 version 0.4a3 (public)
==============================================================================
FIX: fixed yet another FRC castling bug, reported by Ray Banks
     Bright would sporadically castle illegally during it's search and crash.
     The situation occured when an enemy rook was 'hiding' behind the castling
     rook, putting the King in check after castling.
     This can only occur in FRC (not normal chess), for example:
     Rr2krnb/1pp1pp1p/6p1/3p4/3P4/1q2BN2/2bQPPPP/R5KB b kq - 0 21
     q5nk/5p2/1Q2p1p1/4P1P1/5P1p/1BR4P/8/rRK5 w Q - 3 80

FIX: The fix in 0.4a2 for FRC castling was ineffective for the UCI protocol.
     (the fix was good for Kc1'like moves, but did not detect e.g. d1c1)


20090330 version 0.4a2 (public)
==============================================================================
FIX: fixed yet another FRC castling bug, reported by Matthias Gemuh
     Bright would not accept a king's move if castling was also possible to 
     the same square. e.g., it would not accept Kc1 in the following position:
     rk1b2rq/pppn3p/3pp3/4p1p1/4P1n1/2PPBNN1/PP3PPP/RK4RQ w GAga -



20081002 version 0.4a, public since 20090321
==============================================================================
strength: just below 3000 elo according to CCRL
changes:
- eval: rewritten king safety, resulting in more attractive play, or so I hope
- eval: added term for Queen centralisation
- eval: tuned trade values
- eval: refined endgame drawing rules
- search: futility pruning tweaks
- search: reduction rule tweaks
- search: killer tweaks
- search: move ordering tweaks
- search: Transposition table tweak
- FRC: fixed a castling bug in parsing code, reported by Ray Banks
known issues:
- winboard support is broken


20080615 version 0.3d (private)
==============================================================================
Slightly slower recompile (without pgo) of 0.3c: 

No longer crashes when a promotion move is played.
See below for other improvements since 0.3b


20080615 version 0.3c (private)
==============================================================================
Experimental version. Blitz results show an improvement from version 0.3b:
bright-0.3c-bright-0.3b            :105.5/172 79-40-53  61%   +78
bright-0.3c-Glaurung-2.1.0         : 34.0/54  28-14-12  63%   +92
bright-0.3c-Spike1.2               : 28.5/54  21-18-15  53%   +21
bright-0.3c-Strelka-2.0            : 27.5/54  20-19-15  51%    +7
bright-0.3c-Thinker 5.1c (Passive) : 25.0/54  21-25-8   46%   -28
bright-0.3c-Toga141se              : 27.5/54  22-21-11  51%    +7

changes:
- improved winboard support (bug fixes, pondering added)
- eval: classic Kaufmann trade values for rooks/knights vs pawns removed
- eval: tuned trades evaluation, pawn shield, attack on king
- search: tuned null move, reductions, re-searches, extensions, move order, iid 
- qsearch: tuned check/pin extensions



20080321 version 0.3b (private)
==============================================================================
Experimental version. CCRL testing indicates a strength improvement of ~20 elo.

changes:
- minimal,experimental support was added for the Winboard protocol (NO pondering)
- king safety evaluation (tweaked bad pawn shield penalty)
- trades evaluation      (tweaked bishop pair bonus, e.a.)
- pattern evaluation     (tweaked rook on open file bonus, e.a.)
- pawn evaluation        (psq, doubled, candidates, ...)
- search: tweaked recapture extension 

fixes:
- smp: all threats shared the same evaluation cache, causing slowdown and 
       corrupted evaluation values
- egbb: bright would crash on startup if an invalid egbb.dir was specified 
        in the INI-file


20080125 version 0.3a (public)
==============================================================================
Experimental version.
CCRL testing indicates that strength has been improved by 25-50 elo.

changes:
- evaluation (rooks, knights and passed pawns)
- search (more agressive futility pruning)
- time management

fixes: 
- in some (many?) situations an enemy long castling move was overlooked
- sometimes an illegal has table move was played, causing bright to hang



20071123 version 0.2c (first public version)
==============================================================================
Version 0.2c should play slightly stronger with 1 cpu than version 0.2b.
Version 0.2c should play significantly stronger if >=2 cpu cores are used.

changes:
- search enhancements           (matekiller, ALL-node best moves)
- improved parallel search      (helpful master, stop on failhi)
- support for up to 8 cpu cores (>4 cores NOT tested)



20070823 version 0.2b
==============================================================================
Version 0.2b should be at least as strong as version 0.2a.

Thanks to Rainer Serfling for reporting and helping to solve these bugs:
- bright would not always load under chessbase GUI's
- bright would not always use the opening book under chessbase GUI's
- bright would hang while pondering the single legal move under chessbase GUI's

Enhancements:
- SMP version now included (experimental)
- evaluation enhancements (material imbalances, pressure)
- search enhancements (transposition table, futility pruning)



20070530 version 0.2a
==============================================================================
Strength may have improved by about 50 elo since version 0.1d.

enhancements and bug fixes since 0.1d:
- new: opening book by Dr. Wael Deeb
- new: option to create opening book, see readme.txt
- fix: better detection of draws with rook-pawn and wrong bishop
- fix: timelosses should no more occur
  (bright mistakenly looked at elpased cpu time instead of elapsed wall 
   time.)
- improved (passed) pawn & piece evaluation
- improved search: 
  capture- and check evasion ordering, when to LMR, when to IID,
  fail-low extension (wac141 now found/solved at ply 7/9),
  early draw detection (thanks to Gerd Isenberg for the idea)



20070520 version 0.1f
==============================================================================
Experimental version
- fixed PGN parsing, multi-line comments are handled better now.
- king safety changes
- 50 more elo since version 0.1d?



20070502 version 0.1e
==============================================================================
Experimental version
- added a bookmerge option. See readme.txt for instructions.
- king safety changes
- fix: prevent timelosses by using wall clock (GetTickCount) in stead of 
       cpu clock (clock()) to measure elapsed thinking time.



20070419 version 0.1de
==============================================================================
This is a transitional version between 0.1d and 0.1e
Experimental opening book code was added. See readme.txt for instructions.



20070318 version 0.1d
==============================================================================
Strength may have improved by ~50 elo since version 0.1c (blitz self-play test)

Search enhancements
- Scorpio egbb support added (thanks to Daniel Shawul for permitting me to use it)
- added futility pruning, nps went up >30% (pruned nodes are counted)
- evaluation: tuned pawn, king and knight evaluation
- fixed a bug that would return false mate scores under reduced search conditions
- fixed a bug that would cause wrong time calculation due to overflow when using long time controls

E0006 endgame   kpk
                Bright is now aware of the drawing/winning rules of the kpk endgame
                (egbb cover this)



20070124 version 0.1c
==============================================================================
Strength may have improved by ~50 elo since version 0.1b (basic self-play test)
General improvements: (passed) pawn evaluation, king activation, king safety

bug fixes and enhancements:
B0004 polyglot  pondering and SyncStop
                Need for polyglot option SyncStop=true was removed
                threading issue: the board would get corrupted when the gui 
                would send a new a positions while the search thread was still
                terminating from a previous stop command.

B0005 uci       out of time on 40th move
                The time safety buffer was increased from 1 to 3 seconds to
                prevent losses on time (on slow machines).
                uci output is limited for quickly repeating pv's

B0006 board     illegal check evasion after EP with two revealed sliders
		3r1bnr/p5p/1p2k/2pbPp1p//P1N3PB/1P1B3P/3RR1K w - f6 0 2
                after exf6, bright mistakenly thought that the king could flee to d7.

E0007 endgame   unpromotable rookpawns
                Bright now recognizes unpromotable rookpawns in the endgame 
                with no pieces or bishop of the wrong color
		e.g. ///6k//7P/4B2P/5K is now evaluated as drawn


20070106 version 0.1b
==============================================================================
B0002 time    !pondering broken
               The ponder move was searched for only 4 seconds, causing it to 
               fail on any time control but blitz.

B0003 uci     !hung after pondering miss
               Bright appeared to hang when pondering search was finished before
               it was bright's turn again (due to a mate or B0002). Cause was 
               that the GUI was waiting for a move of the cancelled ponder search.

E0001 time    +out of book
               nominal search time is extended by 100% for the first downto 12.5%
               for the 8th move out of book

E0002 time    ~pondering extension
               25% ponderhits are anticipated when pondering is ON.
               Nominal search time is increased to timeleft/30 (was: timeleft/40)

E0003 time    ~score drop extension
               nominal search time is extended when the score has dropped 30/40 
               points in the last two iterations (was: 50/50)

E0004 log     ~logging off
               Logging is now turned off by default. It can be turned on by the
               -logdir command line option.  e.g. "bright -logdir ." will create
               logfiles in the current directory


20061231 version 0.1a
==============================================================================
B0001 uci   ~Polyglot choked on the moves that bright sent. 
             Piece, capture, promotion and checking decorations have been removed



20061220 version 0.1 
==============================================================================
Initial version, the usual buzzwords are supported:
search  +TT,null-move,PVS,LMR,quiescent search
eval    +material, mobility, king safety (pawn shield & enemy attacks); 
         isolated, doubled, weak and passed pawns
