Dev Builds » 20120827-1717

Use this dev build

NCM plays each Stockfish dev build 20,000 times against Stockfish 15. This yields an approximate Elo difference and establishes confidence in the strength of the dev builds.

Summary

Host Duration Avg Base NPS Games WLD Standard Elo Ptnml(0-2) Gamepair Elo

Test Detail

ID Host Base NPS Games WLD Standard Elo Ptnml(0-2) Gamepair Elo CLI PGN

Commit

Commit ID 3df2c01b5769c7ae996fb5b992c06e4a5428ad35
Author Marco Costalba
Date 2012-08-27 17:17:02 UTC
Correctly handle handover of setup states Before the search we setup the starting position doing all the moves (sent by GUI) from start position to the position just before to start searching. To do this we use a set of StateInfo records used by each do_move() call. These records shall be kept valid during all the search because repetition draw detection uses them to back track all the earlier positions keys. The problem is that, while searching, the GUI could send another 'position' command, this calls set_position() that clears the states! Of course a crash follows shortly. Before searching all the relevant parameters are copied in start_searching() just for this reason: to fully detach data accessed during the search from the UCI protocol handling. So the natural solution would be to copy also the setup states. Unfortunatly this approach does not work because StateInfo contains a pointer to the previous record, so naively copying and then freeing the original memory leads to a crash. That's why we use two std::auto_ptr (one belonging to UCI and another to Search) to safely transfer ownership of the StateInfo records to the search, after we have setup the root position. As a nice side-effect all the possible memory leaks are magically sorted out for us by std::auto_ptr semantic. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Copyright 2011–2024 Next Chess Move LLC