{"push_id":964375270,"size":52,"distinct_size":52,"ref":"refs/heads/master","head":"aedebe35cfa38b543041bae97e91e8194738b202","before":"27c5cb59127101d834636d4faa0062d4e7bd05ce","commits":[{"sha":"9c9205860c5ab0e4f3180298e3f7082be259772c","author":{"email":"e7366a8c07bfdf2f7115ad219848d448a055b931@gmail.com","name":"Marco Costalba"},"message":"Get rid of timer thread\n\nUnfortunately std::condition_variable::wait_for()\nis not accurate in general case and the timer thread\ncan wake up also after tens or even hundreds of\nmillisecs after time has elapsded. CPU load, process\npriorities, number of concurrent threads, even from\nother processes, will have effect upon it.\n\nEven official documentation says: \"This function may\nblock for longer than timeout_duration due to scheduling\nor resource contention delays.\"\n\nSo retire timer and use a polling scheme based on a\nlocal thread counter that counts search() calls and\na small trick to keep polling frequency constant,\nindependently from the number of threads.\n\nTested for no regression at very fast TC 2+0.05 th 7:\nLLR: 2.96 (-2.94,2.94) [-3.00,1.00]\nTotal: 32969 W: 6720 L: 6620 D: 19629\n\nTC 2+0.05 th 1:\nLLR: 2.95 (-2.94,2.94) [-3.00,1.00]\nTotal: 7765 W: 1917 L: 1765 D: 4083\n\nAnd at STC TC, both single thread\nLLR: 2.96 (-2.94,2.94) [-3.00,1.00]\nTotal: 15587 W: 3036 L: 2905 D: 9646\n\nAnd with 7 threads\nLLR: 2.95 (-2.94,2.94) [-3.00,1.00]\nTotal: 8149 W: 1367 L: 1227 D: 5555\n\nbench: 8639247","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/9c9205860c5ab0e4f3180298e3f7082be259772c"},{"sha":"e6eeb17aa6a79ab49b6c70fb783f54318d63add7","author":{"email":"4b1bae11f1777a912b0957c30f951f323deff558@gmail.com","name":"lucasart"},"message":"Ensure that rootDepth < DEPTH_MAX\n\nIndeed, if we use a depth >= DEPTH_MAX, we start having negative depth in the\nTT (due to int8_t cast).\n\nNo functional change in single thread mode\n\nResolves #490","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/e6eeb17aa6a79ab49b6c70fb783f54318d63add7"},{"sha":"fca8dbc0295c27ee8b2e3ee8cc217edd36f20127","author":{"email":"4b1bae11f1777a912b0957c30f951f323deff558@gmail.com","name":"lucasart"},"message":"Avoid friend\n\noperator<<(os, pos) does not need to access any private members of pos.\n\nNo functional change.\n\nResolves #492","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/fca8dbc0295c27ee8b2e3ee8cc217edd36f20127"},{"sha":"ce84ab6e9dc64e0c137c2785a36e4a345a8a5a95","author":{"email":"e7366a8c07bfdf2f7115ad219848d448a055b931@gmail.com","name":"Marco Costalba"},"message":"Fix broken UCI 'wait for stop'\n\nWhen we reach the maximum depth, we can finish the\nsearch without a raise of Signals.stop. However, if\nwe are pondering or in an infinite search, the UCI\nprotocol states that we shouldn't print the best move\nbefore the GUI sends a \"stop\" or \"ponderhit\" command.\n\nIt was broken by lazy smp. Fix it by moving the stopping\nof the threads after waiting for GUI.\n\nNo functional change.","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/ce84ab6e9dc64e0c137c2785a36e4a345a8a5a95"},{"sha":"76ed0ab5015f41715453a7efcedd57a7a5c962da","author":{"email":"e7366a8c07bfdf2f7115ad219848d448a055b931@gmail.com","name":"Marco Costalba"},"message":"Retire ThreadBase\n\nNow that we don't have anymore TimerThread, there is\nno need of this long class hierarchy.\n\nAlso assorted reformatting while there.\n\nTo verify no regression, passed at STC with 7 threads:\nLLR: 2.97 (-2.94,2.94) [-5.00,0.00]\nTotal: 30990 W: 4945 L: 4942 D: 21103\n\nNo functional change.","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/76ed0ab5015f41715453a7efcedd57a7a5c962da"},{"sha":"cccf3c815c2f2be884fac4248a2be91b6823df8a","author":{"email":"fc698dd90d00b1dab6280d992ac908366396f4dc@gmail.com","name":"Stefan Geschwentner"},"message":"Bonus for reachable outpost\n\nGive a bonus for outpost squares which in reach of a bishop or knight.\n\nSTC:\nLLR: 2.96 (-2.94,2.94) [0.00,5.00]\nTotal: 22725 W: 4570 L: 4339 D: 13816\n\nLTC:\nLLR: 2.96 (-2.94,2.94) [0.00,5.00]\nTotal: 15019 W: 2333 L: 2157 D: 10529\n\nBench: 8503181\n\nResolves #495","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/cccf3c815c2f2be884fac4248a2be91b6823df8a"},{"sha":"27ca89d4794162d6d3c9d59ed62b3543d0d8e9e0","author":{"email":"5bd94a70e01d47268e0caceed782534724f9661a@mit.edu","name":"Ken T Takusagawa"},"message":"Do not conceal the invocation of the benchmark program\n\nIt is better to be able to see what arguments it is being called with.\n\nNo functional change\n\nResolves #497","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/27ca89d4794162d6d3c9d59ed62b3543d0d8e9e0"},{"sha":"07e0741dfbca07097f38e46f3f7752b48675a515","author":{"email":"ace7f16dc79366a592c6b81c420853f4b5758c68@gmail.com","name":"VoyagerOne"},"message":"History Pruning: Don't prune the main killer move.\n\nAlso increased pruned depth to 4.\n\nSTC:\nLLR: 2.96 (-2.94,2.94) [0.00,5.00]\nTotal: 23380 W: 4581 L: 4350 D: 14449\n\nLTC:\nLLR: 2.96 (-2.94,2.94) [0.00,5.00]\nTotal: 28934 W: 4329 L: 4105 D: 20500\n\nBench: 8369743\n\nResolves #498","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/07e0741dfbca07097f38e46f3f7752b48675a515"},{"sha":"93195555ed230df1d29933de6236d6847ae88310","author":{"email":"e7366a8c07bfdf2f7115ad219848d448a055b931@gmail.com","name":"Marco Costalba"},"message":"Rewrite how threads are spawned\n\nInstead of creating a running std::thread and\nreturning, wait in Thread c'tor that the native\nthread of execution goes to sleep in idle_loop().\n\nIn this way we can simplify how search is started,\nbecause when main thread is idle we are sure also\nall other threads will be idle, in any case, even\nat thread creation and startup.\n\nAfter lazy smp went in, we can simpify and rewrite\na lot of logic that is now no more needed. This is\nhopefully the final big cleanup.\n\nTested for no regression at 5+0.1 with 3 threads:\nLLR: 2.95 (-2.94,2.94) [-5.00,0.00]\nTotal: 17411 W: 3248 L: 3198 D: 10965\n\nNo functional change.","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/93195555ed230df1d29933de6236d6847ae88310"},{"sha":"328098d027e7c35625acbb28e42732137c02d0c1","author":{"email":"4b1bae11f1777a912b0957c30f951f323deff558@gmail.com","name":"lucasart"},"message":"Fix TT comment and static_assert()\n\nComment is based on a misunderstanding of what unaligned memory access is. Here\nis an article that explains it very clearly:\nhttps://www.kernel.org/doc/Documentation/unaligned-memory-access.txt\n\nNo matter how we define TTEntry or TTCluster, there will never be any unaligned\nmemory access. This is because the complier knows the alignment rules, and does\nthe necessary adjustments to make sure unaligned memory access does not occur.\n\nThe issue being adressed here has nothing to do with unaligned memory access. It\nis about cache performance. In order to achieve best cache performance:\n- we prefetch the cacheline as soon as possible.\n- we ensure that TT clusters do not spread across two cachelines. If they did,\n  we would need to prefetch 2 cachelines, which could hurt cache performance.\n\nTherefore the true conditions to achieve this are:\n1/ start adress of TT is cache line aligned. void TranspositionTable::resize()\nenforces this.\n2/ TT cluster size should *divide* the cache line size. Currently, we pack 2\nclusters per cache lines. It used to be 1 before \"TT sardines\". Does not matter\nwhat the ratio is, all we want is to fit an integer number of clusters per cache\nline.\n\nNo functional change.\n\nResolves #506","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/328098d027e7c35625acbb28e42732137c02d0c1"},{"sha":"79f393084af73655c869af126281bb2a7c2cc396","author":{"email":"8ce396f43608b3b27b67158abb0b1885ca05027f@email","name":"mstembera"},"message":"Clean up RootMove less operator\n\nThis is used by std::stable_sort() to sort moves from highest score to lowest score.\n\n1) The comment is incorrect since highest to lowest means descending.\n2) It's more natural to implement a less operator using another less operator rather than a greater operator.\n\nNo functional change.\n\nResolves #504","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/79f393084af73655c869af126281bb2a7c2cc396"},{"sha":"388630ae285b3f9f0c8ee4f30e754bde6688c57c","author":{"email":"8ce396f43608b3b27b67158abb0b1885ca05027f@email","name":"mstembera"},"message":"Allow cross compilation of Windows binaries on a Linux system\n\nthat are PGO, LTO, and statically linked.\nCredit: pasquale....@gmail.com\n\nNo functional change\n\nResolves #505","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/388630ae285b3f9f0c8ee4f30e754bde6688c57c"},{"sha":"5339ab57d80b19de3cb664b62fd40b626bc1634b","author":{"email":"f7c86d500a996202165f30555a37a7f4889d3d0f@zoox.com","name":"Joona Kiiski"},"message":"Revert \"Allow cross compilation of Windows binaries on a Linux system\"\n\nThis reverts commit 388630ae285b3f9f0c8ee4f30e754bde6688c57c.\n\nConfuses fishtest build system","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/5339ab57d80b19de3cb664b62fd40b626bc1634b"},{"sha":"5a42427cb882f8adcfe65d41f4fabac5d2ac4a5b","author":{"email":"dc5888237d439b473359081fc99470407a7c956d@free.fr","name":"Stéphane Nicolet"},"message":"Introduce new Threats weights = {350, 256}\n\nRaise the midgame threats weight by 37%.\n\nPassed STC:\nLLR: 2.95 (-2.94,2.94) [0.00,4.00]\nTotal: 8165 W: 1675 L: 1487 D: 5003\n\nand LTC:\nLLR: 2.95 (-2.94,2.94) [0.00,4.00]\nTotal: 28181 W: 4141 L: 3912 D: 20128\n\nBench: 7824961\n\nResolves #512","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/5a42427cb882f8adcfe65d41f4fabac5d2ac4a5b"},{"sha":"5d077bb482c0203fa138097ece5a7aa6a46e9f2a","author":{"email":"8ce396f43608b3b27b67158abb0b1885ca05027f@email","name":"mstembera"},"message":"Proper Makefile for cross compiling 64 or 32 bit PGO + LTO + static Windows binaries under Linux.\n\nNo functional change\n\nResolves #511","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/5d077bb482c0203fa138097ece5a7aa6a46e9f2a"},{"sha":"52eac1e53512f4388bb310cb4d653ce18c9c4c63","author":{"email":"e7366a8c07bfdf2f7115ad219848d448a055b931@gmail.com","name":"Marco Costalba"},"message":"Simplify outpost code\n\nAlso inline defintions of SpaceMask and CenterBindMask.\n\nVerified from assembly that compiler computes the values\nat compile time, so it is also theoretical faster.\n\nWhile there factor out scale factor evaluation.\n\nNo functional change.","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/52eac1e53512f4388bb310cb4d653ce18c9c4c63"},{"sha":"8315620522dd268755f32be792802abb62f7366f","author":{"email":"5ff552e803e805da676442abcaad8a9a33140fb8@gmail.com","name":"absimaldata"},"message":"New Tuned Weights\n\nMore accurate evaluation weights\n\nPerformed better at STC\n\nLLR: 1.32 (-2.94,2.94) [0.00,4.00]\nTotal: 190043 W: 37433 L: 36675 D: 115935\n\nPassed LTC\n\nLLR: 2.95 (-2.94,2.94) [0.00,4.00]\nTotal: 30157 W: 4540 L: 4303 D: 21314\n\nBench: 9264977\n\nResolves #515","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/8315620522dd268755f32be792802abb62f7366f"},{"sha":"7904a7d930d4979fcd0bf13d48a6504f97f39a54","author":{"email":"8ce396f43608b3b27b67158abb0b1885ca05027f@email","name":"mstembera"},"message":"Fix MultiPv and Skill in SMP.\n\n7 threads, 5+0.1:\nLLR: 2.96 (-2.94,2.94) [-3.00,1.00]\nTotal: 55460 W: 9665 L: 9601 D: 36194\n\nNo functional change in normal playing mode","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/7904a7d930d4979fcd0bf13d48a6504f97f39a54"},{"sha":"69240a982d8c3a2d01fab04c284be43853ab2bc9","author":{"email":"d44294dabb5559d834f8f8d1c5d4fd75c165770e@home","name":"Leonid Pechenik"},"message":"Simplify time management and fix 'ponder on' bug\n\nSimplify time management code by removing hard stops for unchanging first root moves.\nSearch is now stopped earlier at the end iteration if it did not have fail-lows at root.\n\nThis simplification also fixes pondering bug. Ponder flag was true by default\nand cutechess-cli doesn't change it to false even though no pondering is possible.\nFix the issue by setting the default value of 'Ponder' flag to false.\n\n10+0.1:\nELO: 3.51 +-3.0 (95%) LOS: 99.0%\nTotal: 20000 W: 3898 L: 3696 D: 12406\n\n40+0.4:\nELO: 1.39 +-2.7 (95%) LOS: 84.7%\nTotal: 20000 W: 3104 L: 3024 D: 13872\n\n60+0.06:\nLLR: 2.95 (-2.94,2.94) [-3.00,1.00]\nTotal: 37231 W: 5333 L: 5236 D: 26662\n\nStopped run at 100+1:\nLLR: 1.09 (-2.94,2.94) [-3.00,1.00]\nTotal: 37253 W: 4862 L: 4856 D: 27535\n\nResolves #523\nFixes #510","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/69240a982d8c3a2d01fab04c284be43853ab2bc9"},{"sha":"9fac5774f414ec4a2e86c6b0306f07de427cd5db","author":{"email":"5bdcd3c0d4d24ae3e71b3b452a024c6324c7e4bb@multicim.com","name":"Alain SAVARD"},"message":"Threats retuned\n\nSTC:\n\nLLR: 2.96 (-2.94,2.94) [0.00,4.00]\nTotal: 45239 W: 8913 L: 8591 D: 27735\n\nLTC:\n\nLLR: 2.95 (-2.94,2.94) [0.00,4.00]\nTotal: 21046 W: 3200 L: 2989 D: 14857\n\nBench: 8012530\n\nResolves #526","distinct":true,"url":"https://api.github.com/repos/hazzl/Stockfish/commits/9fac5774f414ec4a2e86c6b0306f07de427cd5db"}]}