Skip to content

v0.32.0

Choose a tag to compare

@kaspermunch kaspermunch released this 03 Jun 15:00
· 22 commits to master since this release
Fix Windows/MSVC build of phasic.c (cibuildwheel)

MSVC rejected three constructs that GCC/Clang accept, failing the
windows-latest wheel in pypi-release.yml:

- clock_gettime/CLOCK_MONOTONIC are POSIX-only and undeclared under MSVC.
  Added a portable monotonic_ns() (QueryPerformanceCounter on Windows,
  clock_gettime elsewhere), mirroring scc_compose.c, and used it in the
  env-gated PHASIC_PCG_SELFCHECK timing block.

- The OpenMP 'for' loops over size_t in ptd_expected_sojourn_time hit C3015:
  MSVC implements OpenMP 2.0, which requires a signed loop index. Switched to
  ptrdiff_t (n_signed bound). GCC/Clang OpenMP accept both, so no behavior
  change there.

Verified on macOS: extension builds, expected_sojourn_time returns exact
coalescent values, and the parallel branch (n>=512) is bit-identical to serial.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>