Releases: Trickfest/ArasanEmbedded
Releases · Trickfest/ArasanEmbedded
Release list
ArasanEmbedded 1.3.1
Highlights
- Refreshes the vendored Arasan snapshot to upstream e3e6f436f223f8df8b762897a8ba189f069ee596 (v26.0-25-ge3e6f436), including the castling-state validation added in response to upstream issue #72.
- Adds integration coverage for rejecting inconsistent FEN castling rights and for repeated depth-8 searches across the reported position sequence with valid castling rights.
- Preserves the current bundled NNUE, Fathom revision, embedded stream-input adjustment, package-owned global initialization, and 4 MiB engine-thread stack.
Compatibility
- Public package API remains source-compatible with v1.3.0.
- This remains a source-only Swift package release for Apple arm64 platforms; no binary artifacts are attached.
Validation
- Complete Scripts/validate.sh release gate
- Debug and Release builds
- 58 normal tests and 58 Thread Sanitizer tests
- CLI smoke, constrained-stack startup, invalid-input checks, and five-search soak
- iOS 27 simulator and generic-device Release builds
- API compatibility against v1.3.0
- Clean committed-source archive and license validation
The optional external Syzygy asset test was not rerun because the tablebase integration and Fathom revision are unchanged.
ArasanEmbedded 1.3.0
Highlights
- Refreshes the vendored Arasan snapshot to upstream
d507b7cc583c1f0a4d02a794384b6fce2947e1a1(v26.0-18-gd507b7cc), including the upstream fix for issue #71. - Updates the bundled network to
arasanv8-20260906.nnuewhile preserving the existing embedded stream-input adjustment, package-owned global initialization, Fathom revision, and 4 MiB engine-thread stack. - Enables libc++ debug hardening and adds a depth-8 regression that reproduces the former invalid
std::clampbounds path.
Compatibility
- Public package API remains source-compatible with
v1.2.0. - This remains a source-only Swift package release for Apple arm64 platforms; no binary artifacts are attached.
Validation
Scripts/validate.sh- Debug and Release builds
- 56 normal tests and 56 Thread Sanitizer tests
- Depth-8 regression coverage for upstream issue #71
- 36-position Lichess tactical regression suite at depth 8
- CLI smoke, constrained-stack startup, invalid-input checks, and five-search soak
- iOS 27 simulator and generic-device Release builds
- API compatibility against
v1.2.0 - Clean committed-source archive and license validation
The optional external Syzygy asset test was not rerun because the tablebase integration and Fathom revision are unchanged.
ArasanEmbedded 1.2.0
Highlights
- Refreshes the vendored Arasan snapshot to upstream
95e90f5cc2507564f99eaef420795809c0ee4781(v26.0-4-g95e90f5c), covering the Arasan 26.0 release metadata and documentation plus four subsequent search updates. - Preserves the embedded stream-input adjustment and the package-owned
initArasanEmbeddedGlobals()entry path; upstream initialization, cleanup, the required 4 MiB engine-thread stack, Fathom, and the bundled NNUE remain unchanged. - Advances the package API-compatibility baseline to the prior
v1.1.0release.
Compatibility
- Public package API remains source-compatible with
v1.1.0. - This remains a source-only Swift package release for Apple arm64 platforms; no binary artifacts are attached.
- SwiftChessDemo consumed the exact release checkout through a disposable local package override. Arasan-vs-Arasan completed six live plies in both the iPhone simulator and an attached iPad Pro M4.
Validation
Scripts/validate.sh- Debug and Release builds
- 55 normal tests and 55 Thread Sanitizer tests
- CLI smoke, constrained-stack startup, invalid-input checks, and five-search soak
- iOS simulator and generic-device builds
- API compatibility against
v1.1.0 - Clean committed-source archive and license validation
- SwiftChessDemo Arasan integration tests: 2 passed
- SwiftChessDemo six-ply Arasan-vs-Arasan UI regression: simulator and physical iPad passed
ArasanEmbedded 1.1.0
Highlights
- Harden Arasan's in-process lifecycle with ordered background output, serialized and restartable start/stop behavior, callback-safe blocking teardown, and one active engine per linked package copy.
- Prevent physical Apple devices from terminating during startup by running Arasan on an explicitly sized 4 MiB pthread stack and replacing upstream
globals::initGlobals()in the embedded entry path with documented package-owned non-stack initialization. - Add public
ArasanSoakRunner.stop()support and substantially strengthen smoke, soak, timeout-recovery, command-validation, resource-validation, and regression coverage.
Updated
- Refresh vendored Arasan from
c4bfcab0d5873cb5f61531426fad7a1b3abfe7f1to upstreammastercommitc51273aa812c38bd54460adf68f2e15c32e74d71. - Package the default Lichess-derived corpus with
arasan-soakand add a complete offline release-validation gate. - Make GitHub-hosted validation manual-only and optional; local validation remains the release evidence.
Compatibility
- No breaking public API changes were detected against v1.0.6;
ArasanSoakRunner.stop()is additive. - Runtime NNUE and
Threadschanges sent as raw UCI commands are now rejected. Create a newly configured engine to select a different NNUE network. - Embedded searches intentionally remain fixed at one Arasan thread, and Apple arm64 remains the supported architecture.
Validation
- Complete clean-checkout
Scripts/validate.shgate: Debug and Release builds, the 55-test suite in normal and Thread Sanitizer modes, constrained-stack startup, CLI smoke and soak, simulator and generic-device builds, API compatibility, and committed-source archive/license verification. - Optional downloaded Syzygy tablebase integration test passed separately.
- Physical iPad SwiftChessDemo validation with a disposable local package override: 111 Arasan-vs-Arasan plies and 79 mixed Stockfish/Arasan plies, with the app remaining alive and no engine failures.
ArasanEmbedded 1.0.6
Changes
- Update vendored Arasan source to upstream master commit
c4bfcab0d5873cb5f61531426fad7a1b3abfe7f1. - Replace the local mate-score hash clamp workaround with Arasan's upstream mate-distance-pruning root-cause fix for debug assertion crashes when quiescence search stores mate-range hash scores.
- Refresh vendored Fathom Syzygy source and Arasan provenance documentation for the new upstream snapshot.
Validation
swift package dump-packageswift buildswift testswift run arasan-smoke --depth 1swift run arasan-soak --iterations 5 --movetime 500xcodebuild -scheme ArasanEmbedded -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=latest' -derivedDataPath .build/xcode-ios buildScripts/test-external-assets.sh
ArasanEmbedded 1.0.5
Fixed
- Clamp Arasan mate-score hash conversion at mate bounds instead of aborting in debug builds when a mate-range score is stored from a deeper ply.
- Add focused regression coverage for positive and negative mate-bound hash-score storage.
ArasanEmbedded 1.0.4
ArasanEmbedded 1.0.4
- Updates vendored Arasan source to upstream
mastercommit36774cd7581685491ad0e0f77ec7b3a0a5763376. - Picks up Arasan's upstream arm64 NEON sparse NNUE accumulation fix, accepted upstream in commit
58c58cf9, so the package no longer carries that fix as a local vendored patch. - Preserves the package-specific embedded stream-input polling path used by the in-process UCI wrapper.
- Refreshes provenance and vendored-update documentation for the new snapshot.
Validation run before release:
swift package dump-packageswift buildswift testswift run arasan-smoke --depth 1swift run arasan-soak --iterations 5 --movetime 500xcodebuild -scheme ArasanEmbedded -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=latest' -derivedDataPath .build/xcode-ios buildScripts/test-external-assets.sh
ArasanEmbedded 1.0.3
- Detach
std::cinfromstd::coutwhile Arasan runs against wrapper-provided streams, avoiding flushes against redirected output during engine shutdown and restart. - Add repeated stop/search lifecycle coverage for active searches and fresh engine starts.
ArasanEmbedded 1.0.2
Fixed
- Fixed embedded search-time command polling so
stopis observed while Arasan is actively searching through the wrapper C++ stream input. - Fixed engine shutdown so the wrapper waits for the engine thread to exit before destroying input objects, avoiding a crash when switching or tearing down engines during active search.
- Added lifecycle regression coverage for stopping an active deep search and starting a fresh
ArasanEngineinstance.
ArasanEmbedded 1.0.1
Changes
- Fix arm64 NEON sparse NNUE accumulation so Arasan reports material imbalances correctly on Apple Silicon.
- Add a material-imbalance integration regression test that verifies large positive and negative centipawn scores.
- Document the local vendored Arasan NEON adjustment and update the vendored refresh process to preserve or reconcile it.
- Refresh the README relationship note now that SwiftChessDemo can run with either StockfishEmbedded or ArasanEmbedded.