Stockfish Development Versions are build automatically if there are changes on the master branch in the git repository (https://github.com/official-stockfish/Stockfish). Use it at your own risk.
They are compiled with gcc 5.4.0/mingw 5.3.1 on Ubuntu 16.04.
2.Jan.2016: BMI build now slightly faster due to profiling.
Development builds for macOS are available at stockfishchess.de
Read the FAQ or leave a comment.

goto Gull
!! latest version !!


Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: VoyagerOne
Date: Wed Jun 21 14:06:05 2017 -0700
Timestamp: 1498079165

Increase reduction if tt-move is a capture

The idea is that chances are the tt-move is best and will be difficult to raise alpha when playing a quiet move.

STC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 7582 W: 1415 L: 1259 D: 4908

LTC:
LLR: 2.97 (-2.94,2.94) [0.00,5.00]
Total: 59553 W: 7885 L: 7573 D: 44095

Bench: 5725676

Closes #1147
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: snicolet
Date: Wed Jun 21 14:01:59 2017 -0700
Timestamp: 1498078919

Improve readability of evaluation functions

This patch puts the evaluation helper functions inside EvalInfo struct, which simplifies a bit their signature and (most importantly, IMHO) makes their C++ code much cleaner and simpler to read (by removing the "ei." qualifiers all around in evaluate.cpp).

Also rename the EvalInfo struct into Evaluation class to get a natural invocation v = Evaluation(p).value() to evaluation position p.

The downside is an increase of 20 lines in evaluate.cpp (for the prototypes of the helper functions). The upsides are better readability and a speed-up of 0.6% (by generating all the helpers for the NO_TRACE case together, which helps the instruction cache).

No functional change

Closes #1135
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: VoyagerOne
Date: Wed Jun 21 13:47:10 2017 -0700
Timestamp: 1498078030

Update Top CPU - Bench: 6599721

Closes #1145
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Joona Kiiski
Date: Wed Jun 21 13:45:03 2017 -0700
Timestamp: 1498077903

Revert "Prefetch earlier in qsearch()"

This reverts commit b73016bb41d4c2fad3126b2e0018d71a36e78331.

No functional change

Closes #1144
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Joost VandeVondele
Date: Wed Jun 21 13:37:58 2017 -0700
Timestamp: 1498077478

Fix four data races.

the nodes, tbHits, rootDepth and lastInfoTime variables are read by multiple threads, but not declared atomic, leading to data races as found by -fsanitize=thread. This patch fixes this issue. It is based on top of the CI-threading branch (PR #1129), and should fix the corresponding CI error messages.

The patch passed an STC check for no regression:

http://tests.stockfishchess.org/tests/view/5925d5590ebc59035df34b9f
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 169597 W: 29938 L: 30066 D: 109593

Whereas rootDepth and lastInfoTime are not performance critical, nodes and tbHits are. Indeed, an earlier version using relaxed atomic updates on the latter two variables failed STC testing (http://tests.stockfishchess.org/tests/view/592001700ebc59035df34924), which can be shown to be due to x86-32 (http://tests.stockfishchess.org/tests/view/592330ac0ebc59035df34a89). Indeed, the latter have no instruction to atomically update a 64bit variable. The proposed solution thus uses a variable in Position that is accessed only by one thread, which is copied every few thousand nodes to the shared variable in Thread.

No functional change.

Closes #1130
Closes #1129
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Alain SAVARD
Date: Fri Jun 16 19:55:30 2017 -0700
Timestamp: 1497668130

Misc coding style fixes

a few comment and blank fixes.

No functional change

Closes #1141
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: snicolet
Date: Fri Jun 16 19:52:38 2017 -0700
Timestamp: 1497667958

Prefetch earlier in qsearch()

Closes #1139
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Marco Costalba
Date: Fri Jun 16 19:33:44 2017 -0700
Timestamp: 1497666824

Better naming in endgame code

And small clean-up of magic bitboards code.

No functional change.

Closes #1138
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Brian Sheppard
Date: Fri Jun 16 19:30:19 2017 -0700
Timestamp: 1497666619

Move depth calculation in probCut

The change passed an STC regression:

LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 59350 W: 10793 L: 10738 D: 37819

I verified that there was no change in performance on my machine, but of course YMMV:

Results for 40 tests for each version:

Base Test Diff
Mean 2014338 2016121 -1783
StDev 62655 63441 3860

p-value: 0.678
speedup: 0.001

No functional change.

Closes #1137
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Joost VandeVondele
Date: Fri Jun 16 19:20:01 2017 -0700
Timestamp: 1497666001

Call TT.new_search() earlier.

TT.new_search() was being called by mainThread in Thread::search(). However, mainThread is the last to start searching, and helper threads could reach a measured rootDepth 10 (on 64 cores) before mainThread increments the TT generation. Fixed by moving the call to MaintThread::search() before helper threads start searching.

No functional change.

Closes #1134
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: mstembera
Date: Tue Jun 6 10:22:12 2017 -0700
Timestamp: 1496769732

Reordering magic data

Gather all magic relevant data into a struct.

This changes memory layout putting everything necessary for processing a single square
in the same memory location thus speeding up access.

Original patch by @snicolet

No functional change.

Closes #1127
Closes #1128
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: atumanian
Date: Tue Jun 6 10:15:13 2017 -0700
Timestamp: 1496769313

Don't score as an immediate draw 2-fold repetitions of the root position

In the current version a search stops when the current position is the same as
any position earlier in the search stack,
including the root position but excluding positions before the root.
The new version makes an exception for repeating the root position.

This gives correct scores for moves in the MultiPV > 1 mode.

Fixes #948 (see it for the detailed description of the bug).

LTC: http://tests.stockfishchess.org/tests/view/587910bc0ebc5915193f754b
ELO: 0.38 +-1.7 (95%) LOS: 66.8%
Total: 40000 W: 5166 L: 5122 D: 29712

STC: http://tests.stockfishchess.org/tests/view/5922e6230ebc59035df34a50
LLR: 2.94 (-2.94,2.94) [-3.00,1.00]
Total: 94622 W: 17059 L: 17064 D: 60499

LTC: http://tests.stockfishchess.org/tests/view/59273a000ebc59035df34c03
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 61259 W: 7965 L: 7897 D: 45397

Bench: 6599721

Closes #1126
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Joost VandeVondele
Date: Tue Jun 6 09:56:13 2017 -0700
Timestamp: 1496768173

use auto& for histories

No functional change.

Closes #1113
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Marco Costalba
Date: Fri May 26 08:42:50 2017 +0200
Timestamp: 1495780970

History code rewrite (#1122)

Rearrange and rename all history heuristic code. Naming
is now based on chessprogramming.wikispaces.com conventions
and the relations among the various heuristics are now more
clear and consistent.

No functional change.
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Nathan Rugg
Date: Tue May 23 20:27:30 2017 -0700
Timestamp: 1495596450

Changed spelling back to "Bishops" in eval output

No functional change.

Closes #1124
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: VoyagerOne
Date: Sun May 21 18:27:57 2017 -0700
Timestamp: 1495416477

Evasion Pruning Tweak

Use moveCount to decide when to prune for evasion pruning

STC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 24476 W: 4518 L: 4289 D: 15669

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 18362 W: 2476 L: 2298 D: 13588

Bench: 6469989

Closes #1120
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: snicolet
Date: Wed May 17 18:24:43 2017 -0700
Timestamp: 1495070683

Do check analysis later in the game

The previous patch has added a fraction of the king danger score to the
endgame score of the tapered eval, so it seems natural to perform the
king danger computation later in the endgame.

With this patch we extend the limit of such check analysis down to the
material of Rook+Knight, when we have at least two pieces attacking the
opponent king zone.

Passed STC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 7446 W: 1409 L: 1253 D: 4784
http://tests.stockfishchess.org/tests/view/591c097c0ebc59035df3477c

and LTC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 14234 W: 1946 L: 1781 D: 10507
http://tests.stockfishchess.org/tests/view/591c24f10ebc59035df3478c

Bench: 5975183

Closes #1121
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: snicolet
Date: Wed May 17 18:19:47 2017 -0700
Timestamp: 1495070387

Use a fraction of king danger in endgame score

When SF has an attack on the opponent king in one flank, the huge
midgame -> endgame gradient of the tapered eval prevents us to properly
evaluate neutral exchanges on the other flank as the current king
danger score is a pure midgame term. This may affect SF's ability to
switch to defense in some positions. We add a small contribution
of the king danger to the endgame score to limit this
effect.

Again suggested in the following forum thread:
https://groups.google.com/forum/?fromgroups=#!topic/fishcooking/xrUCQ7b0ObE

Passed STC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 12719 W: 2371 L: 2192 D: 8156
http://tests.stockfishchess.org/tests/view/5919761a0ebc59035df3468f

And LTC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 31293 W: 4194 L: 3974 D: 23125
http://tests.stockfishchess.org/tests/view/591980450ebc59035df34695

Bench: 5961548

Closes #1118
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Joost VandeVondele
Date: Wed May 17 18:15:01 2017 -0700
Timestamp: 1495070101

Fix memory access in Search::clear()

Fixes a bug in Search::clear, where the filling of CounterMoveStats&, overwrote (currently presumably unused) memory because sizeof(cm) returns the size in bytes, whereas elements was needed.

No functional change

Closes #1119
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: snicolet
Date: Mon May 15 19:28:37 2017 -0700
Timestamp: 1494901717

Limit king ring to eight squares

In current master the size of the king ring varies abruptly from eight
squares when the king is in g8, to 12 squares when it is in g7. Because
the king ring is used for estimating attack strength, this may lead to
an overestimation of king danger in some positions. This patch limits
the king ring to eight squares in all cases.

Inspired by the following forum thread:
https://groups.google.com/forum/?fromgroups=#!topic/fishcooking/xrUCQ7b0ObE

Passed STC:
LLR: 2.97 (-2.94,2.94) [0.00,5.00]
Total: 9244 W: 1777 L: 1611 D: 5856

and LTC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 87121 W: 11765 L: 11358 D: 63998

Bench: 6121121

Closes #1115
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Joost VandeVondele
Date: Mon May 15 18:54:13 2017 -0700
Timestamp: 1494899653

Execute an implied ucinewgame at startup

execute an implied ucinewgame upon entering the UCI::loop,
to make sure that searches starting with and without an (optional) ucinewgame
command yield the same search.

This is needed now that seach::clear() initializes tables to non-zero default values.

No functional change

Closes #1101
Closes #1104
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Marco Costalba
Date: Wed May 10 18:20:45 2017 +0200
Timestamp: 1494433245

Default argument for see_ge()

No functional change.

Closes #1111
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: Joost VandeVondele
Date: Tue May 9 18:36:32 2017 -0700
Timestamp: 1494380192

Remove int to int conversion, unused include.

No functional change.

Closes #1112
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: FauziAkram
Date: Sun May 7 21:11:51 2017 -0700
Timestamp: 1494216711

Linear Protector bonus by distance

Replacing the old Protector table with a simple linear formula which takes into account a different slope for each different piece type.

The idea of this simplification of Protector is originated by Alain (Rocky)

STC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 70382 W: 12859 L: 12823 D: 44700

LTC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 61554 W: 8098 L: 8031 D: 45425

Bench: 6107863

Closes #1099
Windows x64 for Haswell CPUs
Windows x64 for modern computers
Windows x64
Windows 32
Linux x64 for Haswell CPUs
Linux x64 for modern computers
Linux x64
Author: IIvec
Date: Sun May 7 20:57:29 2017 -0700
Timestamp: 1494215849

King safety and rook mobility parameters tweak

STC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 19280 W: 3595 L: 3373 D: 12312

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 221405 W: 28940 L: 28220 D: 164245

Bench: 6506664

Closes #1105

next page >