- Let
Tablebase
use normalized material keys for each table. - Small optimizations and documentation improvements.
- Add
Tablebase::with_mmap_filesystem()
behind optionalmmap
feature. - Add
Tablebase::with_filesystem()
and provide abstractions to implement custom methods to open and read table files. - Add basic
tracing
instrumentation. - Relax eager check for too many pieces, so that some 8 piece positions with captures can be resolved.
- No longer set
POSIX_FADVISE_RANDOM
by default. Can be re-enabled by usingOsFilesystem::with_advise_random()
. - Optimize probe performance by joining consecutive reads and keeping symbol tables in memory.
- Update shakmaty to
0.27
. - Validate file sizes when adding table files.
- Propagate I/O error kind when failing to add individual table files.
- Update shakmaty to
0.26
.
- Update shakmaty to
0.25
.
- Update shakmaty to
0.24
. - Reduce size of error types by boxing unlikely errors.
- Use
#[track_caller]
for panicking functions.
- Update shakmaty to
0.23
.
- Update shakmaty to
0.22
. - Remove the
backtrace
feature.ProbeError::CorruptedTable
now always captures a backtrace when theRUST_BACKTRACE
orRUST_LIB_BACKTRACE
environment variables are set. - Fix compilation on 32-bit Unix systems.
yanked
- Update shakmaty to
0.21
.
- Introduce
MaybeRounded
andAmbiguousWdl
, ensuring that DTZ rounding is handled. - Add
Tablebase::max_pieces()
. Dtz::before_zeroing()
is no longer generic.Dtz::add_plies()
now takesu32
. Add checked and saturating versions.- Fix
ProbeError::CorruptedTable
should be#[non_exhaustive]
whenbacktrace
feature not enabled. - Optimize initialization of internal constants, no longer depending on
on
lazy_static
.
- Update shakmaty to
0.20
.
- Update shakmaty to
0.19
.
- Update shakmaty to
0.18
.
- Update shakmaty to
0.17
. - Fix panic when lead pawns are corrupted.
- Explicit
#![forbid(unsafe_code)]
. - Update dependencies.
- Update shakmaty to
0.16
. - No longer depend on
failure
. Instead, nightly Rust and thebacktrace
feature are required to get backtraces for corrupted tables. - Validate file size when opening table files.
- Update dependencies.
- Update shakmaty to
0.15
.
- Update dependencies.
- Update shakmaty to
0.14
. - Add reimplementation of Fathom as example.
- Update shakmaty to
0.13
. - Use
FADV_RANDOM
on tablebase files.
- Update shakmaty to
0.12
. Tablebase::add_directory()
now returns the number of added files.- Added
Tablebase::add_file()
. ProbeError
andMetric
are now public. Other previously hidden APIs are no longer exposed.- Various refactorings, performance improvements and dependency updates.
- Optimize reading block lengths.
- More internal refactorings.
- Add benchmark.
- Update shakmaty to 0.11.x.
- Add
Syzygy::MAX_PIECES
. - More efficient
Tablebase::best_move()
. - Internal refactorings following tablebase rewrite in Cfish.
- Update shakmaty to 0.10.x.
- Update shakmaty to 0.9.x. Minimum Rust version is now 1.27.0.
- Fix
Wdl::from_dtz_after_zeroing(Dtz(100))
.
- Fix out of bounds panic when probing KPPPPPvK.
- Fix error when first group in giveaway should have had more than two identical pieces.
- Only 6 pieces supported in antichess variants. Return
SyzygyError::TooManyPieces
instead of potential panic.
- More contextual information for errors (table, backtrace, invalid magic header bytes).
- Update to shakmaty 0.8.x.
- Provide a target for
cargo fuzz
. Fix several panics caused by initializing and probing corrupted tables:- Panic when reference pawn is missing.
- Panic when subtable material is not consistent with first file.
- Integer overflow when reading
symlen
. - Integer overflow when
min_symlen
ormax_symlen
are out of bounds. - Integer overflow when computing
block_length_size
. - Stack overflow when recursively reading
symlen
.
- Make better use of
positioned-io
(cursor, removeRandomAccessFile
).
- Remove work around from 0.3.1.
- Minor internal optimizations and cleanups.
- Fix DTZ off-by-one in some positions when there is mate in 1.
- Fix DTZ off-by-one in antichess endgames, when there is a threat to force a capture leading to a blessed loss.
- Add
Tablebase::best_move()
.
- Fix DTZ in en passant positions.
- Minimum Rust version 1.26.0.
- Use guaranteed lossless versions from
u16
tousize
. - Provide i128 conversions for
Wdl
andDtz
.
- Fix debug assertion for
Dtz(0).add_plies()
.
- Update to shakmaty 0.7.x, which has bugfixes with regard to insufficient material.
- Work around compiler bug in release mode.
- Rename
Tablebases
toTablebase
. - Group file extension and magic as
TableType
inSyzygy
trait.
- Implement support for wide DTZ values. These are required for some long 7 piece endgames.
- Fix panic on corrupted table.
- Should not panic on corrupted tables (even in debug mode).
- Switch from fnv to fxhash.
- Replace
Wdl::from(dtz)
withWdl::from_dtz_after_zeroing(dtz)
. - Remove
isize
conversions ofDtz
andWdl
. - Fix WDL of lone king in atomic chess.
- Support stable rust.
- Fix ordering of lead pawns.
- Add support for Atomic chess and Giveaway.
- Cosmetic tweak to DTZ in case of mate in 1.
- Optional
serde-1
feature. - Add
Dtz.add_plies()
.
- First release.