Beowulf Version History
Version 1.0
31/May/01
On release, Beowulf v1.0 supports the following algorithms/features;
- Rotated Bitboard Move Generator
- Advanced Static Analysis Function
- Static Exchange Evaluator for Quiescence Pruning
- Quiescence Search delta cuts
- Adaptive Depth Null move with Verification Search
- Adaptive Razoring
- Innovative Design of Hashtables.
- Internal Iterative Deepening
- Aspiration Window Search
- History and Killer Move Heuristics
- Numerous Search Extensions
- Fully Customisable Algorithm Parameters
- Highly Commented Source Code
- Clean, Easy to Read Coding
- Xboard/Winboard Support
- Opening Book Support
- Endgame Tablebase Support (Nalimov)
- Variable Skill Levels
- Test Suite Support
Version 1.1
1/Jun/01
- Sorted out MVV/LVA algorithm.
- Replaced SEE in move ordering.
- Changed the minimal window search back to the correct implementation.
- Added in hashing in the q-search.
- Tried (and rejected) the idea of storing NULL move search results.
Version 1.2
3/Jun/01
- Added in configuration file
- Added in environment variables support
- Added in support for command line parameters
Version 1.3
10/Jun/01
- New Hashtable code
- Retains Hashtable data between moves
- Better random number code
- Altered q-search hashing to produce fewer nodes
- Miscellaneous code improvements
- Proper parsing of XBoard communication
- Slight eval() tweaks
- Fixed a bug in eval() concerning short-cut evaluation in endgames
- User can now force the analysis to stop
- Analyze mode now supported (at least the most basic form)
Version 1.4
18/Jun/01
- Bugfix to opening book code
- Bugfix to hash table code
- Incremental hash key updates
- Rewrote NULL move depth reduction code
- Fixed problems with the analysis mode
- Tidied up one or two bits of code
Version 1.5
21/Jun/01
- Eval score tweaks
- Fixed one annoying bug in the scoring function
- Personality files
- A few slight algorithm changes
Version 1.6
- Command line parsing of EPD tests
- Time to solution now printed in EPD tests
- Time control customisation allowed in personality file
- Book building utility
- A few slight bugfixes
Version 1.7
11/Oct/01
- Altered Delta cuts
- Added in pawn promotion race support, plus checking for giving check from promotion square
- Fixed problem with move ordering stats in trivial positions
- Added Edit mode support
- Added EGTB probes in analy call
- Fixed stupid EGTB bug with EP squares
- Fixed 'unstoppable passed pawn' routine
- Added in support for pieces blocking the route of a king to attack a passed pawn
- Added in support for queen mobility
- Only store the beta cuts in the qsearch
- Added in support for promoted pawns directly capturing their rivals
- Fixed dumb bug in pawn scoring which tended to make passed pawns stick around the enemy king
- Altered king defence slightly, making it a bit less severe
- Added back in the attack tables. Sped them up as much as I could. Improved pawn formations
- Added back in bonus for creating space in formations
- Improved scoring for defended passed pawns
- Added in SEE code to resolve passed pawn promotion battles
- Altered pawn position scoring to score advanced pawns less in the opening
- Fixed SEE to include promotion moves
Version v1.8
08/Dec/01
- Changed the way Beo handles open spaces
- Optimised the endgame analysis eval()
- Improved the Queen eval (blocked queen)
- Added in proper time handling for MPS and /inc games
- Fixed bug with initial params. not being set up correctly
- Fixed several mistakes in eval()
- Altered King safety & corner tropism
- Added in much more eval() debugging
- Large changes in passed pawn safety code
- Cosmetic improvements
- Board control now varies depending on gamestage and location
- Fixed Doubled and Isolated Pawn scoring
- Fixed problems with rook scoring
- Fixed the book building code
- Built some new books
- Extra minor code (for protecting against bad trades)
- Added feedback for moves which fall outside the principal search window
- Altered hashing slightly & fixed bug with EP
- Fixed hideous bug with GiveCheck() not noticing checks given by castling
- Fixed a second hideous bug in GivesCheck to do with combined diagonal attacks
in both diagonal senses.
- Split much of comp.c off into a seperate file, computil.c
- Lots of minor fixed/alterations in computil.c and tactics.c
- Altered king attack bonuses for rooks and queens
- Fixed distance[][] precalculation
- Added in much more pawn endgame support - including hidden passed pawns
- Altered endgame null move heuristic
- Fixed PV printing problems with hash loops
- EPD test now writes out failed EPD problems (if desired)
- Improved Q-Search extensions (for check positions and pawn promotions) -
switchable at head of comp.c
- Adaptively switches the quiescence hashing depending on search time & table size
- Fixed the positional tactics. Castling is now handled a bit better.
- Fiddled with king attack code for minor pieces.
- Some treatment of pins with major pieces
Version v1.9
06/Feb/02
- Included accurate pin support for all pieces
- Added in good 64 bit RNG for hash key generation
- Altered how hash elements are stored (greatly reduced size/elt)
- Fixed bug in GeneratePromotions()
- Packed MOVE into a (2-byte) short int
- Altered the PV printing to comply with standard notation
- Improved support for rooks. Incl. mobility and positional play.
- Added in penalty for an opponent offside pawn majority
- Added a reward for advanced pawn pairs
- Fixed board control code for queens
- Fixed several large/enormous problems with passed pawn scoring
- Altered the usage of KingDefence in the endgame so that it isn't called so often
- Improved endgame support for bishops
- Altered scoring to ints rather than long ints
- Altered LazyEval to do individual piece loops
- Added in a slightly more complex draw test
- Added a few more things into LazyEval() so that EVAL_FUTILITY checks are more stable
- Reduced number of dangerous eval cuts (i.e. score change goes against score)
- Altered handling of doubled & backward pawns slightly
- Added some fianchetto support
Version v2.0
04/Apr/02
- Fixed the Analyze mode
- Fixed command line input whilst Beo was thinking
- Slightly altered hash replacement scheme
- Fixed problem with Beo continuing to operate after shut down whilst thinking
- Added in more drawn positions support, including positions that *could* be won/lost but
to do so would be extremely unlikely
- Fixed a bug in the test suite code that erroneously marked correct moves as incorrect
- Test suite parser now no longer uses the opening book
- Added in much more endgame support, i.e. rook pawns and unwinnable positions
- Fixed SetBoard FEN parser
- Altered handling for backwards pawns
- Added in some extra code into king safety evaluation
- Fixed a problem with importing pawn promotions in PGN games
- Added in loads more features into the Annotate function
- Added in pondering on opponent's time
- Added in provision for rushed searches when time is short
- Altered the way skill levels work
- Added in a config. file option to turn off auto resign (sometimes caused problems for some users).
- Fixed problem with opponents resigning whilst Beo was thinking (WinBoard mode)
- Added in support for 'Move Now' from Winboard
Version v2.1
06/Oct/02
- Fixed bug with Analyze mode when stepping through castling moves
- Altered board control code
- Added in double null move - noticeable speed increase occasionally
- Altered CM exits on window failures
- Altered Draw handling slightly, mainly during NULL move
- Now resets hash tables properly when board is reset
- Resets hash tables more efficiently, and doesn't use opponent's time.
- Fixed bugs with move ordering.
- Improved search speed, mainly through move ordering and eval tweaks.
- Many Eval tweaks, most importantly fixing pawn majorities.
- Added in infrastructure for distributed version.
- Improved time handling functions to make them more portable.
- Fixed move parsing with castling moves.
Version v2.2
16/Dec/02
- Altered move ordering to ensure that hash move is always first
- Altered safe hash key storing scheme to use full 64-bit key
- Changed hash reset scheme
- Now prints out move scores in analysis data
- Fixed the bug with parsing moves whilst thinking
- Fixed a bug in the FEN parser
- Improved the FEN parser to test positions for legality
- Merged the BeoServer code into the main Beowulf infrastructure
- Fixed time control bug in the BeoServer code
- Improved move ordering by fixing killer move update for CM moves
- Altered BEOCLIENT version so that it returns move as integer not ascii
- Fixed a problem with rook pins
- Added better support for trapped pieces
- Improved king safety, especially versus supported queen attacks
Version v2.3
13/Feb/04
- Fixed the input polling frequency
- Fixed problem loading the opening books in Unix
- Lots of fixes and improvements to BeoServer code
- Adaptive NODE splitting
- Cost estimation
- Reverse-active alpha-beta updates
- Fixed NODE uniqueness bug
- Introduced code for aborted NODEs & re-search heuristics
- Removed hashtable for parallel search & replaced with enhanced NODE table features
- Cleaned up messages a bit to remove parsing overhead
- Possibly fixed very rare hashtable bug
- Fixed a small bug with generating check evasions
- Fixed lots of score asymmetry bugs
- Slightly altered a few scoring rules
- Fixed a castling bug and 50-move rule code
- Reduced bonus for offside pawns
- Added in code to detect easy recapture moves and reduce clock accordingly
- Fixed time-scramble handling
Known issues, and targets for future versions;
- Null move algorithm causes far too many tactical problems.
- Pawn structure is a little bit dodgy
- King safety is still poor
- Too many search instabilities
This page maintained by beowulf@chessbrain.net
Last Updated 13/Feb/2004
Back to Beowulf Homepage