You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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>