Modern Times wrote:I wonder what the code changes are. I guess Stockfish code is quite large, so 99% of the code is probably the same. Would be interesting to know.SzG wrote:Is there some added value to the latest SF development version or are they paractically the same?
Hi guys,
I had some time, and a nice diff tool that can identify changes real easy...here's a quick synopsis.
Sugar has the following code that newest SF-dev version does not currently contain:
Features:
Large Pages
Persistent Hash
Cerebellum and
Ownbook (polyglot .bin) book
Eval:
knight and bishop outpost slightly revalued
const Score WeakUnopposedPawn = S( 5, 25) added
code for UCI evaluation weights
Endgame functions:
Draw detection with 2 or more bishops of the same color and no pawns
Fortress detection
KPKN function
KPKB function
KQKN function
KQKB function
Search:
Tactical Mode
added code for Contempt and OwnBook
1 ply 'tweak' to seldepth
UCI Options:
o["Tactical Mode"] << Option(false);
o["Debug Log File"] << Option("", on_logger);
o["Contempt Factor"] << Option(0, -100, 100);
o["OwnBook"] << Option(false);
o["Threads"] << Option(n, 1, 512, on_threads);
o["Hash"] << Option(16, 1, MaxHashMB, on_hash_size);
o["Clear Hash"] << Option(on_clear_hash);
o["Clean Search"] << Option(false);
o["Ponder"] << Option(false);
//Add evaluation weights.
o["Material (Midgame)"] << Option(100, 0, 500, on_eval);
o["Material (Endgame)"] << Option(100, 0, 500, on_eval);
o["Imbalance (Midgame)"] << Option(100, 0, 500, on_eval);
o["Imbalance (Endgame)"] << Option(100, 0, 500, on_eval);
o["Pawn Structure (Midgame)"] << Option(100, 0, 500, on_eval);
o["Pawn Structure (Endgame)"] << Option(100, 0, 500, on_eval);
o["Mobility (Midgame)"] << Option(100, 0, 500, on_eval);
o["Mobility (Endgame)"] << Option(100, 0, 500, on_eval);
o["Passed Pawns (Midgame)"] << Option(100, 0, 500, on_eval);
o["Passed Pawns (Endgame)"] << Option(100, 0, 500, on_eval);
o["King Safety (Midgame)"] << Option(100, 0, 500, on_eval);
o["King Safety (Endgame)"] << Option(100, 0, 500, on_eval);
o["Threats (Midgame)"] << Option(100, 0, 500, on_eval);
o["Threats (Endgame)"] << Option(100, 0, 500, on_eval);
o["Space"] << Option(100, 0, 500, on_eval);
o["MultiPV"] << Option(1, 1, 500);
o["Skill Level"] << Option(20, 0, 20);
o["NeverClearHash"] << Option(false);
o["HashFile"] << Option("SugaR_hash.hsh", on_HashFile);
o["SaveHashtoFile"] << Option(SaveHashtoFile);
o["LoadHashfromFile"] << Option(LoadHashfromFile);
o["LoadEpdToHash"] << Option(LoadEpdToHash);
o["Best Book Move"] << Option(false);
o["Book File"] << Option("NULL");
o["Move Overhead"] << Option(100, 0, 5000);
o["nodestime"] << Option(0, 0, 10000);
o["UCI_Chess960"] << Option(false);
o["SyzygyPath"] << Option("<empty>", on_tb_path);
o["Use Syzygy"] << Option(true);
o["Large Pages"] << Option(true, on_large_pages);
//Cerebellum Book Library
o["Cerebellum Library"] << Option();
o["Book Move2 Probability"] << Option(0, 0, 100, on_book_move2_prob);
o["BookPath"] << Option("<Cerebellum_Light.bin>", on_brainbook_path);
Hope this is of some help,
Norm