Skip to content

1.1.0

Choose a tag to compare

@ianrastall ianrastall released this 21 Nov 01:48
· 22 commits to master since this release

Full Changelog: 1.0.0...1.1.0

Stockfish Compiler v1.1.0

This release brings significant improvements to the reliability of the MSYS2 installation process, adds support for Profile-Guided Optimization (PGO), and introduces a completely refactored architecture detection system for optimal performance.

New Features

  • Profile-Guided Optimization (PGO): Added a toggle to enable PGO during compilation. This compiles Stockfish, runs a benchmark to profile execution, and then recompiles using that profile for maximum performance.
  • Source Version Selection: Users can now choose between compiling the stable release or the master (development) branch of Stockfish.
  • Smart Architecture Detection:
    • The system now intelligently parses GCC/Clang output to detect supported CPU features (AVX2, BMI2, VNNI, etc.).
    • Added robust fallback logic: if feature detection fails, the system gracefully defaults to a safe architecture (x86-64 or armv8) rather than crashing.
  • Custom Parallelization: Added a configuration option to set the number of parallel compilation jobs (defaults to logical processor count).

Security & Reliability

  • Secure MSYS2 Installation:
    • The installer now validates the SHA256 checksum of the MSYS2 installer before execution to ensure file integrity.
    • Added fallback URLs for the MSYS2 installer in case the primary GitHub API is unreachable.
  • Validated Downloads:
    • NNUE (Neural Network) files are now validated via SHA256 checksums immediately after download.
    • Added file size limits and timeout protections to prevent hanging downloads.
  • Graceful Cancellation: Implemented CancellationToken support across the entire stack. Builds, downloads, and installations can now be cancelled instantly via the UI.

Performance & Polish

  • Throttled Build Logs: The build output window now uses a queued dispatch timer. This prevents the UI from freezing/lagging when the compiler outputs text at high speed.
  • Automatic Cleanup: The application now scans for and removes stale temporary build directories (stockfish_build_*) older than 24 hours on startup.
  • MSYS2 Discovery: Improved the MSYS2Helper to automatically find MSYS2 installations across different drives (C:, D:) and common paths (User directory, Program Files).

Maintenance

  • Refactored StockfishDownloader and CompilerInstallerService for better modularity.
  • Removed legacy scripts (Export-FullContext.ps1).
  • Updated DarkTheme resources for better contrast in the log window.

Visualizing the Logic

To help visualize the new, more robust Architecture Detection logic introduced in this version, here is a flow representation of how the compiler now decides which architecture to target:


Raw Changelog

  • Add PGO build option and improve MSYS2 installer
  • Refactor build and download services for reliability
  • Improve build output handling and installer security
  • Improve error handling and validation in build workflow
  • Improve temp cleanup and MSYS2 installer handling
  • Add Stockfish compilation instructions
  • Remove Export-FullContext.ps1 script