Skip to content

v1.2.9

Choose a tag to compare

@lunalobos lunalobos released this 23 Jun 02:00
· 12 commits to master since this release
e2997e0

Version 1.2.9 is here — Introducing the Functional Package

This release introduces the Functional Package, a redesigned set of core classes optimized for functional programming and multithreaded environments. At its core, the package emphasizes immutability. All value-representing entities such as positions and moves are now immutable and thread-safe by design.

Key highlights:

🧠 Immutable Design: Position, Move, and related constructs are fully immutable, enabling safer reasoning and reducing side effects across the codebase.

⚙️ Simplified Object Creation: Factories and constructors clearly separate object creation from game logic, improving maintainability and predictability.

♟️ Enhanced Game and Position APIs:

The Game class is now more robust in terms of concurrency and logic handling.

The Position class exposes simplified methods and no longer requires external utilities to evaluate game states (check, checkmate, stalemate, etc.).

🔄 Streamlined Move Generation: The Generator class remains available, but is now largely replaced by the convenient Position#children() method.

🧾 Immutable Lists: Collections returned by these classes are backed by immutable implementations, ensuring thread safety and consistency.

⚠️ Concurrency Note: Some classes may contain benign race conditions, which could marginally affect performance under high concurrency, but never compromise correctness.