Skip to content

0.6.1

Choose a tag to compare

@jlogan03 jlogan03 released this 13 Oct 15:25
· 49 commits to main since this release
66136de

0.6.1 2025-10-10, 0.6.0 2025-10-05

Combine python bindings project into rust crate to streamline development process.
Implement PGO (profile-guided optimization) for python releases, giving a 1.2-2x speedup for
dimensions 1-4 at the expense of a ~2x slowdown for higher dimensions.

Changed - 0.6.1

  • Python
    • Pass PGO profile-use argument for rustc via maturin args instead of RUSTFLAGS to avoid overriding flags set in .cargo/config.toml
    • Split PGO scripts into native and distribution variants
      • Distribution variant tests the exact build configuration used for distribution
      • Native variant builds with target-cpu=native to enable all available instruction sets
    • Update baked PGO profile based on distribution build
    • Only run pypi distribution for single python version, because ABI3 build is portable to later python versions
  • Rust
    • Add x64 to platforms where extra instruction sets are enabled in .cargo/config.toml to capture windows 64-bit x86

Changed - 0.6.0

  • Python
    • Port python project from interpnpy repo
    • Implement PGO with hand-tuned profile workload
    • !Set linearize_extrapolation=True as default for cubic interpolators
    • Use pytest-cov for coverage testing
    • Update test deps & add linter/formatter configuration
    • Add uv lock and uv cache configuration
    • Use uv for actions
    • Add more vector instruction sets for x86_64 targets reflecting a ~2015-era CPU
  • Rust
    • Eliminate some length check error handling that is no longer necessary for const-generic flattened methods
    • Add PyO3 bindings from python project as python.rs module behind python feature gate