- * The program is now slightly less resource-hungry on computers\r
- with less than 4 CPU cores: The previous version would always\r
- allocated separate pawn and material hash tables for four\r
- threads, even when running on a single-core CPU. The new version\r
- only allocates pawn and material hash tables for the threads\r
- which are actually used.\r
-\r
- * A minor reorganization of the memory layout has made the parallel\r
- search about 10% more efficient (at least on my computer, but the\r
- results are likely to vary considerably on different systems).\r
-\r
- * The Intel Mac OS X binary is much faster than before, thanks to\r
- the Intel C++ compiler (previous versions were compiled with\r
- GCC).\r
-\r
- * A few other very minor bug fixes and enhancements.\r
-\r
-2007-11-21: Glaurung 2.0\r
-------------------------\r
-\r
-The first stable (or so I hope) and feature-complete version of\r
-Glaurung 2. The following are the main changes compared to the\r
-previous version:\r
-\r
- * The license has been changed from GPL version 2 to GPL version 3.\r
-\r
- * MultiPV mode.\r
-\r
- * Support for the "searchmoves" option in the UCI "go" command.\r
- This means that it is possible to ask Glaurung to exclude some\r
- moves from its analysis, or to restrict its analysis to just a\r
- handful of moves selected by the user. This feature must also be\r
- supported by the GUI under which Glaurung is run. Glaurung's own\r
- GUI does currently not support this feature.\r
-\r
- * Chess960 support now works. The program still plays this game \r
- very badly, because of lack of opening knowledge.\r
-\r
- * Much more aggressive pruning in the last few plies of the main\r
- search.\r
-\r
- * Somewhat better scaling on multi-CPU systems, and support for up\r
- to 8 CPUs.\r
-\r
- * Lots of new UCI parameters.\r
-\r
- * Improved time managment, especially in games with pondering on \r
- (i.e. when the engine is allowed to think when it's the\r
- opponent's turn to move).\r
-\r
- * Some evaluation improvements, and some new basic endgame\r
- patterns.\r
-\r
- * The program should no longer crash if the game lasts longer than\r
- 1000 plies.\r
- \r
- * Many minor bug fixes and other tiny improvements throughout the\r
- code. \r
- \r
- * More generously commented code, and numerous cosmetic changes in\r
- coding style.\r
-\r
-2007-11-22: Glaurung 2.0.1\r
---------------------------\r
-\r
- * Fixed (or so I hope) a bug which would occasionally cause one of\r
- the search threads to get stuck forever in its idle loop.\r
-\r
-2008-05-14: Glaurung 2.1\r
-------------------------\r
-\r
-This version contains far too many changes to list them all, but most\r
-of them are minor and cosmetic. The most important and noticable\r
-changes are a lot of new UCI parameters, and many improvements in the\r
-evaluation function. The highlights are:\r
-\r
- * Extensive changes in the evaluation function. The addition of\r
- king safety is the most important improvement, but there are also\r
- numerous little improvements elsewhere in the evaluation. There\r
- is still much work left to do in the evaluation function, though.\r
- Space and development are still missing, and the tuning is likely\r
- to be very poor. Currently, the program is optimized for an\r
- entertaining style rather than maximum strength.\r
-\r
- * More accurate forward pruning. The previous version used the\r
- null move refutation move to improve the pruning accuracy by\r
- means of a very simple trick: It did not allow pruning of any\r
- moves with the piece captured by the null move refutation move.\r
- In Glaurung 2.1, this has been enhanced: It does not allow\r
- pruning of moves which defend the destination square of the null\r
- move refutation move, nor of moves which block the ray of the\r
- piece in the case that the moving piece in the null move\r
- refutation move is a slider.\r
-\r
- * More conservative use of LMR at PV nodes. The previous version\r
- searched the first 6 moves with full depth, 2.1 by default\r
- searches the first 14 moves with full depth (but there is a new\r
- UCI parameter for configuring this). I am not at all sure\r
- whether this is an improvement. More thorough testing is\r
- required. \r
-\r
- * Feedback from the evaluation to the search. The search passes an\r
- object of type 'EvalInfo' to the eval, and the eval fills this\r
- struct with various potentially useful information (like the sets\r
- of squares attacked by each piece type, the middle game and\r
- endgame components of the eval, etc.). At the moment, almost\r
- none of this information is actually used by the search. The\r
- only exception is that the evaluation function is now used to\r
- adjust the futility pruning margin in the quiescence search.\r
-\r
- * Less extensions. This hurts the programs performance a lot in most\r
- test suites, but I hope it improves the branching factor in deep\r
- searches.\r
-\r
- * A very long list of new UCI parameters, especially for tuning the\r
- evaluation. \r
-\r
-\r
-6. Terms of use\r