lichess.org
Donate
Jja: Jin, Jîyan, Azadî

Can Ferman Gülmez

jja v0.8.0: A Power Move in Chess Utilities

Software DevelopmentChess botChess engineAnalysis
Dive into the latest release of jja, the ultimate command-line chess tool. Version 0.8.0 brings a suite of enhancements, fixes, and exciting new features tailored for both chess enthusiasts and developers. Let's unpack the update!

Welcome to the latest update of jja, a versatile command-line utility for chess enthusiasts and developers. With the release of version 0.8.0, a myriad of features, fixes, and improvements have been introduced. This post provides a detailed walkthrough of the changelog, highlighting key changes.

Download

To install from source, use cargo install jja.

New Commands and Features

Perft Subcommand

The perft subcommand has been added, enabling users to count legal move paths for a specified length, providing deeper insights into the game.

Probe Subcommand

A standout addition is the probe subcommand, which facilitates probing Syzygy tablebases up to 7 pieces. It mimics the functionality of the renowned Fathom tool but introduces alternative modes such as --test --fast. This expedited mode skips walking the DTZ line, potentially resulting in mis-evaluations of MaybeWin and MaybeLoss positions.

Enhanced Editing and Dumping

The edit command has received significant upgrades:

  • Capability to dump all positions in a PGN file to an EPD file. This includes support for compressed PGN files.
  • Introduction of --max-ply and --look-ahead options. These options control the depth of PGN generation and lookahead functionality on PolyGlot book lookup misses.

Additionally, the dump command now boasts the -e or --elements flag to specify elements for dumping, catering specifically to PGN dumps.

Critical Fixes and Improvements

PGN Generation Fix

An imperative fix was made in PGN generation which addressed an issue causing some lines to be skipped due to incorrect usage of the repetition tracker. All users are strongly urged to re-export their PGNs to prevent data loss.

CTG Book Fixes

Another essential fix rectifies potential panics in the jja::ctgbook::CtgBook::read_page function, ensuring a smooth experience when dealing with extensive CTG books.

Handling Invalid Castling Rights and En Passant Squares

Rather than overlooking a game, jja now disregards invalid castling rights and en passant squares present in the FEN header of PGN games.

Upgrades and Breaking Changes

Multiple crate upgrades have been implemented to improve performance and compatibility:

  • pgn-reader crate upgraded from 0.24 to 0.25.
  • shakmaty crate transitioned from 0.25 to 0.26.
  • Upgrade of tempfile crate from 3.6 to 3.7.

The update also introduces several breaking changes that developers should be aware of, mainly in the function signatures of the public API. It's crucial to review the changelog to ensure your applications remain functional post-update.

Miscellaneous

A variety of minor changes and enhancements, like the renaming of the hash subcommand to digest and improved error handling using the anyhow crate, provide a more polished user experience.
Finally, in a light-hearted addition, the quote command now matches at word boundaries unless wildcard characters are included.

Closing Thoughts

jja v0.8.0 is a significant leap forward, making the tool even more indispensable for chess aficionados. It's evident that the team behind jja is dedicated to refining and expanding the tool, ensuring it remains at the forefront of chess-related command-line utilities.
Whether you're delving deep into the intricacies of chess file formats, or simply seeking a reliable tool to edit, merge, or analyze your chess data, jja has got you covered. Upgrade to the latest version and make the most of these fantastic new features!