Skip to content

Releases: Trickfest/ArasanEmbedded

ArasanEmbedded 1.3.1

Choose a tag to compare

@Trickfest Trickfest released this 28 Sep 14:25

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

Choose a tag to compare

@Trickfest Trickfest released this 15 Sep 23:04

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.nnue while 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::clamp bounds 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

Choose a tag to compare

@Trickfest Trickfest released this 06 Aug 13:33

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.0 release.

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

Choose a tag to compare

@Trickfest Trickfest released this 13 Jul 20:01

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 c4bfcab0d5873cb5f61531426fad7a1b3abfe7f1 to upstream master commit c51273aa812c38bd54460adf68f2e15c32e74d71.
  • Package the default Lichess-derived corpus with arasan-soak and 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 Threads changes 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.sh gate: 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

Choose a tag to compare

@Trickfest Trickfest released this 06 Jul 01:00

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-package
  • swift build
  • swift test
  • swift run arasan-smoke --depth 1
  • swift run arasan-soak --iterations 5 --movetime 500
  • xcodebuild -scheme ArasanEmbedded -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=latest' -derivedDataPath .build/xcode-ios build
  • Scripts/test-external-assets.sh

ArasanEmbedded 1.0.5

Choose a tag to compare

@Trickfest Trickfest released this 02 Jul 19:07

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

Choose a tag to compare

@Trickfest Trickfest released this 02 Jul 12:15

ArasanEmbedded 1.0.4

  • Updates vendored Arasan source to upstream master commit 36774cd7581685491ad0e0f77ec7b3a0a5763376.
  • 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-package
  • swift build
  • swift test
  • swift run arasan-smoke --depth 1
  • swift run arasan-soak --iterations 5 --movetime 500
  • xcodebuild -scheme ArasanEmbedded -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=latest' -derivedDataPath .build/xcode-ios build
  • Scripts/test-external-assets.sh

ArasanEmbedded 1.0.3

Choose a tag to compare

@Trickfest Trickfest released this 30 Jun 03:00
  • Detach std::cin from std::cout while 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

Choose a tag to compare

@Trickfest Trickfest released this 30 Jun 00:02

Fixed

  • Fixed embedded search-time command polling so stop is 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 ArasanEngine instance.

ArasanEmbedded 1.0.1

Choose a tag to compare

@Trickfest Trickfest released this 29 Jun 17:34

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.