Skip to content

v1.5.3 — Final v1.x Release

Latest

Choose a tag to compare

@OldCrow OldCrow released this 20 Jun 02:28
v1.5.3
6976469

v1.5.3 is the last release of the v1.x series. v2.0.0 is in active
development and will introduce breaking API changes. Pin to v1.5.3 if
you need a stable v1.x baseline; migration notes will accompany v2.0.0.

Validated on all four machines: Kaby Lake AVX2+FMA (39/39),
Ivy Bridge AVX (38/38), Mac Mini M1 NEON (39/39),
Asus TUF A16 AVX-512 (39/39).

Bug fixes

  • BF-1: Remove noexcept from UniformDistribution move constructor
    — the specifier contradicted its own @warning comment; a throwing
    mutex acquisition would have called std::terminate
  • BF-2: Fix version constants frozen at 1.2.0 — corrected to 1.5.3
    and tied to the CMakeLists project(VERSION)
  • BF-3: Move type aliases (Gaussian, Normal, …) inside the
    LIBSTATS_FULL_INTERFACE guard — using them without the full interface
    produced confusing incomplete-type errors on first use
  • BF-4: Fix libstats-config.cmake.in exported target names
    (libstats::staticlibstats::libstats_static) — find_package
    compatibility variables were never populated in any prior install

Deprecation sweep

Adds [[deprecated("...")]] compiler-warning attributes to every API
element scheduled for removal in v2.0.0, giving consumers a
compiler-warning cycle before the breaking release:

  • All 48 *WithStrategy explicit batch methods (16 distributions × 3)
  • DistributionBase::getBatchProbabilities/LogProbabilities/ CumulativeProbabilities/Quantiles
  • DistributionBase::getKLDivergence
  • MemoryPool, SmallVector, StackAllocator, simd_vector
    (entire distribution_memory.h)
  • PerformanceDispatcher::Thresholds::refineWithCapabilities

VonMises

  • Add getMedian() — the distribution is symmetric about μ; the method
    was absent from the core contract shared by all other distributions
  • Correct stale "VectorOps has no vector_cos" comments — the 4-step
    SIMD pipeline has been active since v1.4.0
  • Rename *BatchImpl*BatchUnsafeImpl throughout header and .cpp
    to match the naming convention used by all other distributions

CI fixes

  • avx512-compilation.yml: fix silently swallowed compilation failures
    (|| echo|| { …; exit 1; }); correct include path to
    build/include_shim (the previous -I include path never resolved the
    libstats/ prefix, so the check was a no-op on every prior run);
    update compiler matrix from gcc-12/clang-15 to gcc-13/clang-17
    (clang-15 is incompatible with the libstdc++14 headers now on
    ubuntu-latest)
  • ci.yml lint job: clang-format-15/clang-tidy-1517

Documentation

  • AGENTS.md: distribution count corrected (9 → 16); deprecated build
    types annotated; Homebrew LLVM section demoted from 'Recommended' to
    'Legacy'
  • README.md: prominent final-v1.x release banner; version badge updated