Skip to content

Releases: chesskit-app/chesskit-engine

ChessKitEngine 0.7.0

16 Sep 00:02
a2b4769

Choose a tag to compare

Improvements

  • Commands and responses are now logged using their own synchronous queue to prevent unreadable output when commands and responses were sent simultaneously.
  • setLoggingEnabled(loggingEnabled:) has been renamed set(loggingEnabled:) async.
    • The original function remains but is deprecated.
  • Change default coreCount in Engine.start() to one less than the device's core count (minimum of 1).
    • This allows a free core for other processing tasks in a multicore environment.
    • Can still be changed with the coreCount parameter if desired.
  • Engine now automatically stops related processes when it is deinitialized.

Full Changelog: 0.6.0...0.7.0

ChessKitEngine 0.6.0

31 May 02:06
f9d3c1f

Choose a tag to compare

Breaking Changes

  • ChessKitEngine now supports Swift 6 concurrency (by @Amir-Zucker).
    • Starting and stopping engine, as well as sending commands must now be done using async/await.

New Contributors

Full Changelog: 0.5.0...0.6.0

ChessKitEngine 0.5.0

11 Sep 01:25
8975c9f

Choose a tag to compare

Engine Upgrades

Improvements

  • Engine.type is now exposed publicly.

Full Changelog: 0.4.1...0.5.0

ChessKitEngine 0.4.1

23 Apr 02:19
66710c5

Choose a tag to compare

Bug Fixes

  • Fix issue where engine responses containing a newline character would not be parsed correctly.

Full Changelog: 0.4.0...0.4.1

ChessKitEngine 0.4.0

22 Apr 18:48
053314a

Choose a tag to compare

Engine Upgrades

  • Update to Stockfish 16.1.
    • ⚠️ Stockfish now requires EvalFile and EvalFileSmall options to be set after launch, with a path to the *.nnue files provided.
    • Currently chesskit-engine assumes nn-baff1ede1f90.nnue, nn-b1a57edbea57.nnue are available in your app's Bundle.main.
    • Click the file names in the previous line to access the download pages.
    • Any other files can be added via .setoption(id:value:) engine commands.
  • Update to LeelaChessZero 0.30.
    • ⚠️ Lc0 requires WeightsFile options to be set after launch, with a path to a neural network file provided.
    • Currently chesskit-engine assumes 192x15_network is available in your app's Bundle.main.
    • Network files can be downloaded from lczero.org.
    • Any other files can be added via .setoption(id:value:) engine commands.
    • Currently there are some performance issues using lc0 in an app; this is being investigated but any contributions (via PRs or issues) are appreciated.

Improvements

  • Engine.start() now takes a completion handler.
    • This is called once the engine has finished initializing.
    • Engine commands (i.e. setting options or requesting evaluations) should not be sent until this completion handler is called.
  • EngineMessenger now sends commands to the engines via stdin, see Issue #11.
    • This will allow for much simpler upgrades to existing engines, as well as the inclusion of new engines in the future.
    • Special thanks @dehlen.

Full Changelog: 0.3.0...0.4.0

ChessKitEngine 0.3.0

28 Mar 02:32
24f9364

Choose a tag to compare

Improvements

  • Add background engine processing for better performance.
  • Remove neural network resource files for greatly reduced package size.
    • These can be added manually by bundling the desired files and setting the appropriate engine to use them (see Resources directory).
    • For Stockfish 15.1 (nn-1337b1adec5b.nnue):
      engine.send(command: .setoption(id: "EvalFile", value: evalFileURL))
      engine.send(command: .setoption(id: "Use NNUE", value: "true"))
    • For LeelaChessZero 0.29 (192x15_network):
      engine.send(command: .setoption(id: "WeightsFile", value: weightsFileURL))

Full Changelog: 0.2.2...0.3.0

ChessKitEngine 0.2.2

18 May 14:19
84b9687

Choose a tag to compare

  • Replaced submodule URLs with HTTPS instead of SSH

Full Changelog: 0.2.1...0.2.2

ChessKitEngine 0.2.1

28 Apr 18:18
156a7d6

Choose a tag to compare

Improvements

  • Removed unsafe flags from Package.swift

Full Changelog: 0.2.0...0.2.1

ChessKitEngine 0.2.0

26 Apr 15:53
924732d

Choose a tag to compare

New Features

Improvements

  • Engine initializer no longer has a default engineType (previously .stockfish)
    • Type must be specified using Engine(type: <engine type>)
  • Add Stockfish EvalFile as Swift package resource

Full Changelog: 0.1.3...0.2.0

ChessKitEngine 0.1.3

15 Apr 19:09
fbcae0d

Choose a tag to compare

Improvements

  • Add default nil value for value parameter in EngineCommand.setoption(id:value:)

Bug Fixes

  • Fix loggingEnabled default value to match documentation
  • Fix EngineCommand.PositionString(rawValue:) when passing a FEN string

Technical Improvements

  • Simplify internal Obj-C and C++ targets
  • Increase test coverage

Full Changelog: 0.1.2...0.1.3