Skip to content

PRIK 0.2.0

Choose a tag to compare

@saidctb saidctb released this 10 Aug 18:23
· 50 commits to main since this release

Added

  • Added maintained FFTPACK and MINPACK examples built from the upstream
    fortran-lang projects. Their build scripts, user guides, and numerical tests
    cover all 31 FFTPACK and 22 MINPACK public procedures.
  • Added Python-owned, read-only NumPy snapshots for supported public Fortran
    parameter arrays, including MINPACK's dpmpar constants.
  • Added declaration-expression support for richer arithmetic, comparisons,
    conditionals, array inquiries, and local, imported, or standalone
    specification functions, including native-dependent result extents.
  • Added exact NumPy Boolean-array conversion for compiler-measured 8-, 16-,
    32-, and 64-bit Fortran logical kinds, with canonical writeback.
  • Added WrapperBuildResult.import_module() to load a generated extension
    explicitly without changing sys.path.

Changed

  • Moved documentation and maintainer-tool tests to tests/docs/ and
    tests/tools/, removed the generic tests/shared/ bucket, and mirrored
    internal tests by production package with narrower support helpers; removed
    recursive layout-policing tests that froze maintainer organization, retaining
    exceptional release safety under tests/workflows/. The maintainer-tool and
    workflow-safety suites, blocking static analysis, and focused documentation
    smoke checks now also run through the repository's tracked pre-push hook,
    together with one compiled scalar-wrapper smoke test, for earlier local
    feedback while remaining enforced by GitHub Actions.
  • Simplified the documented DGESV validation and the LAPACK test suite to use
    explicit NumPy Fortran-order copies, with documented numerical-test helper
    conventions.
  • Aligned the documented MINPACK hybrd1 callback example with its runnable
    test, made it verify callback invocation, and made its test problems
    self-contained; FFTPACK workspace initializer tests now validate a paired
    transform against NumPy or SciPy.
  • Renamed the developer-facing wrapper generation package from
    prik.wrapper_codegen to prik.codegen; the old import path was removed.
  • Expanded public interface resolution so implemented unnamed interfaces and
    public generics can be wrapped without exposing private implementation
    procedures.
  • Expanded the Real Libraries CI lane to build and test BLAS, LAPACK, FFTPACK,
    and MINPACK, with cached native BLAS and LAPACK builds where available.
  • Made performance comparisons faster and less order-sensitive with balanced
    A/B/B/A runtime measurements, merged samples, smaller worker budgets, and
    four measured clean builds after warm-up.
  • Refreshed the README and website around the canonical
    PRIK — Python Runtime Interop Kit identity, with a concise FAQ, a fair
    PRIK-versus-f2py guide, clearer array guidance, and searchable real-library
    examples, including a four-library capability and validation summary, a
    concise statement of current limitations, and a derived-type inheritance
    walkthrough.
  • Hardened preprocessing, compiler-derived type probes, semantic policy
    completion, and multi-source build reporting so unsupported contracts fail
    earlier with clearer diagnostics.

Fixed

  • Preserved authoritative public interface signatures when linked legacy
    implementations use different internal storage declarations, including
    FFTPACK's zfftf complex-array interface.
  • Corrected SciPy reference inputs for the LAPACK dstemr and dstebz tests
    and strengthened BLAS and LAPACK routine validation with independent
    mathematical expectations.