This file contains information about Fuego releases. It also contains a
(probably incomplete) list of the most important changes or of all
critical bugfixes in releases from a bugfix branch. For a detailed changelog
of changes in the main development branch, consult the version control
history.


Version 1.1 - 2011 Mar 11
=========================

* Added missing doxygen documentation source files to distribution
* Fixed compilation error if HOST_CPU was undefined
* Set default for lock-free search to true if HOST_CPU is i686
* Implement cgos-gameover to fix unnecessary pondering with CGOS Python client
  after game is over
* Avoid a crash if more than 2 GB are allocated on 32-bit Windoes systems
  without support for large memory addresses (tickets #73, #76)
  The default memory used is now limited to 1 GB and the number od threads
  to 4. The expand threshold is set to 3.
* Updated documentation for 64-bit compilation on Windows (ticket #73)
* configure.ac: removed GCC warning flags -Wconversion, -ansi, -pedantic,
  because they generate warnings with Boost 1.45
* Check for existence of sys/sysctl.h with autoconf and use it in SgPlatform
  only if it exists.

Version 1.0 - 2011 Jan 23
=========================

* Command line option parsing is now done with boost::program_options.
  Deprecated SgCmdLineOpt is no longer used. Options start with "--". 
* Game-independent autobook builder to generate opening books
* Support for propagating proven wins and losses in the UCT tree
* Initial support for static win/loss detection in Go
* New configure parameter --enable-max-size. The parameter --enable-optimize
  is no longer supported. The new script setup-build.sh can be used to set up
  some commonly used build configurations.
* Use only the same floating point type for all counts and values in
  SgUctSearch. The floating point type cane be set with the configure
  parameter --enable-uct-value-type
* Added generic argument parsing function GtpCommand::Arg<T> and declared
  old function (GtpCommand::IntArg() etc.) as deprecated
* Old class GoGame was removed, GoGameRecord renamed to GoGame. GoGame
  does no longer provide non-const access to the tree and game state to
  guarantee its class invariants
* Made GoPlayer to store its search traces instead of appending them directly
  to the game tree
* Several optimizations to speed up the Monte-Carlo searches.
* Fuego now can be compiled natively on Windows with Visual C++ and MinGW.
* The Monte-Carlo search automatically sets reasonable default values for
  memory, number of threads and lock-free mode depending on the current
  machine.
* New parameters "go_param use_book" and "uct_param_player max_ponder_time"
* Updated opening books
* Play forced opening moves on board size 13 as well
* Fixed bug in SgStatisticsExt::Variance()
* Support for multiple knowledge thresholds
* Renamed some classes (SgSList to SgArrayList, SgProvenNodeType to
  SgUctProvenType, SgMoveInfo to SgUctMoveInfo, SgVectorUtility to
  SgVectorUtil, GoGtpTimeSettings to GoTimeSettings)
* reuse_subtree is now enabled by default. The interpretation of max_games
  changed such that it includes the count of simulations from reused trees.
* Fixes and improvements related to lock-free search, tree pruning, virtual
  loss and multiple playouts in SgUctSearch.
* Fix bug #58: Static safety solver misses some unconditionally alive groups
* Other small fixes and improvements.

Version 0.4.1 - 2009 Dec 23
===========================
[Note that the numbering for this version is misleading. This is not a
bugfix release from the stable branch after version 0.4 (VERSION_0_4_FIXES),
but a new release with new and incompatible features from the main branch.]

* Replaced linked list SgList and related functions by SgVector - a wrapper
  around std:vector with the same interface as SgList. Changed implementations
  that added or removed from front of list for efficiency.
* Added hooks for supporting MPI distributed memory implementations
* Add small opening book for 5x5
* Improved 9x9 opening book
* Added link to optional big 19x19 opening books at Ben Lambrechts' site
* Fixed several bugs in static safety solver
* Updated to compile with gcc 4.4.0
* Implemented SgBalancer to achieve roughly equal number of Black and White 
  moves of a specific type in playouts
* Implemented randomized use of RAVE for SelectChild
* Support for proven nodes in SgUctSearch
* Support for kgs-time_settings and different KGS overtime modes
* Refactored SgSearch, reduce size of huge functions. 
* In SgSearch::SearchEngine, use a stack instead of a vector for efficiency
* New max_memory option to uct_param_search makes Fuego easier to configure
* Implement forced opening moves in GoUctPlayer
* Set bias term constant to 0 by default on all boardsizes

Version 0.4 - 2009 May 22
=========================

* Remove SgStreamFmtRestorer; use Boost IO State Savers instead 
* Remove SgUctPriorKnowledge; Derived thread state class will supply knowledge
  values through the GenerateAllMoves() function.
* Change move count type in SgUctNode from float to size_t
* Add support for knowledge in the core of the uct tree

Version 0.3 - 2008 Dec 17
=========================

* Change some default settings to be more friendly to end users (e.g.
  automatic loading of opening book, set ignore_clock to 0)
* New parameter GoUctPlayer::ResignMinGames
* Filter moves on empty edge in GoUctDefaultRootFilter
* Added fillboard and nakade heuristic as described in recent MoGo paper
  (not enabled by default)
* reg_genmove uses now the time limit set with go_param timelimit
* Use weighted RAVE updates in SgUctSearch
* Prune nodes with low visit counts if the tree runs out of memory
* Use different counts in the prior knowledge for small and large board sizes
* New command go_sentinel_file
* Use float type for counts in SgUctNode to allow fractional counts in prior
  knowledge
* Add a locality bonus in prior knowledge (caused a big playing strength
  increase on 19x19)
* New parameter SgUctSearch::VirtualLoss
* New parameter GoUctGlobalSearchStateParam::m_lengthModification (used on
  19x19)
* Use real time as default mode for SgTime
* Don't use SgTimeControl::ReserveMoveConstant anymore
* Other improvements and fixes


Version 0.2 - 2008 Aug 28
=========================

* Declare data members of UCT nodes and signature statistis as volatile.
  This avoids that the compiler reorders writes, which could cause crashes
  if the UCT search is used in lock-free mode.
* Fix bug that caused reusing the subtree not to work (if options
  reuse_subtree or ponder were used)


Version 0.1 - 2008 May 30
=========================

Initial release. Compilation and functionality are tested on current Linux
distributions (Fedora 8, Ubuntu 8.04 LTS) and Mac OS X.
