v0.7.0's cibuildwheel run failed on macos-14 (Apple Silicon, Clang) because
Clang aggressively contracts 'a*b + c' into a single FMA instruction (one
rounding) while the Python _pyref implementation evaluates separate multiply
+ add (two roundings). The resulting 1-ulp differences across Horner
sequences were rejected by tests/test_pyref_consistency, so no wheels were
ever uploaded to PyPI under 0.7.0.
This release adds platform-conditional compile flags that disable FMA
contraction in the C++ Mills-ratio kernel:
- POSIX (Clang / GCC): -ffp-contract=off
- Windows (MSVC): /fp:precise (already the default; explicit for clarity)
Both flags keep mul + add as separate operations, restoring strict bit-
equality between the compiled binding and _pyref on every platform. Local
Windows MSVC build is unchanged (the flag was already the default there);
the meaningful fix lands on the macos-14 build. (PR #11.)
Also in this release: pyproject.toml's Homepage URL updated to
https://github.com/quants-net/MathPF following the post-v0.7.0 org transfer
from PyFE/MathPF. PyPI trusted publishing was reconfigured against the new
org/repo path separately on PyPI's project settings page.
Functional content vs v0.7.0: identical math, identical algorithms, identical
test results. Only difference is the compile flags ensure portable bit-
equality. Users who never saw v0.7.0 on PyPI (because it didn't publish)
see this as the first release after v0.6.1 with the C++ kernel and the
_pyref / tools/ consolidation from PRs #8 + #9 + #10.