Releases: chesskit-app/chesskit-engine
Releases · chesskit-app/chesskit-engine
ChessKitEngine 0.7.0
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 renamedset(loggingEnabled:) async.- The original function remains but is deprecated.
- Change default
coreCountinEngine.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
coreCountparameter if desired.
Enginenow automatically stops related processes when it is deinitialized.
Full Changelog: 0.6.0...0.7.0
ChessKitEngine 0.6.0
Breaking Changes
ChessKitEnginenow supports Swift 6 concurrency (by @Amir-Zucker).- Starting and stopping engine, as well as sending commands must now be done using
async/await.
- Starting and stopping engine, as well as sending commands must now be done using
New Contributors
- @Amir-Zucker made their first contribution in #21
Full Changelog: 0.5.0...0.6.0
ChessKitEngine 0.5.0
Engine Upgrades
- Update to Stockfish 17.
- See new recommended NNUE files EvalFile and EvalFileSmall
- Update to LeelaChessZero 0.31.1.
Improvements
Engine.typeis now exposed publicly.
Full Changelog: 0.4.1...0.5.0
ChessKitEngine 0.4.1
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
Engine Upgrades
- Update to Stockfish 16.1.
⚠️ Stockfish now requiresEvalFileandEvalFileSmalloptions to be set after launch, with a path to the*.nnuefiles provided.- Currently
chesskit-engineassumesnn-baff1ede1f90.nnue,nn-b1a57edbea57.nnueare available in your app'sBundle.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 requiresWeightsFileoptions to be set after launch, with a path to a neural network file provided.- Currently
chesskit-engineassumes192x15_networkis available in your app'sBundle.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
lc0in an app; this is being investigated but any contributions (via PRs or issues) are appreciated.
Improvements
Engine.start()now takes acompletionhandler.- 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.
EngineMessengernow sends commands to the engines viastdin, 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
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
Resourcesdirectory). - 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))
- These can be added manually by bundling the desired files and setting the appropriate engine to use them (see
Full Changelog: 0.2.2...0.3.0
ChessKitEngine 0.2.2
- Replaced submodule URLs with HTTPS instead of SSH
Full Changelog: 0.2.1...0.2.2
ChessKitEngine 0.2.1
ChessKitEngine 0.2.0
New Features
- Add
LeelaChessZero (lc0)engine- Currently comes bundled with a neural network weights file
192x15_network
- Currently comes bundled with a neural network weights file
Improvements
Engineinitializer no longer has a defaultengineType(previously.stockfish)- Type must be specified using
Engine(type: <engine type>)
- Type must be specified using
- Add Stockfish
EvalFileas Swift package resource
Full Changelog: 0.1.3...0.2.0
ChessKitEngine 0.1.3
Improvements
- Add default
nilvalue forvalueparameter inEngineCommand.setoption(id:value:)
Bug Fixes
- Fix
loggingEnableddefault 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