← Back to all sparks
S

SciPy

DEVOPS
Velocity0.0

Fundamental algorithms library for scientific computing in Python

SciPy finished translating itself out of Fortran and now offers a Fortran-free build.

scientific-computingarray-apifortran-to-cilp64jax
Current state
SciPy ships on a six-month major cadence with a long release-candidate tail, and the 1.17/1.18 cycle has been dominated by three structural projects rather than new algorithms. The Fortran-to-C translation is complete, with an experimental Fortran-free build now available to developers. ILP64 BLAS and LAPACK went from initial support in 1.17.0 to three fully supported build modes in 1.18.0. And array API work has spread far enough that stats functions now run under JAX JIT and accept lazy arrays.
Where it's heading
SciPy is decoupling itself from its own foundations — the Fortran toolchain, the assumption of 32-bit indexing, and the assumption that arrays are NumPy arrays. Each of those makes SciPy buildable and usable in places it previously was not: environments without a Fortran compiler, problems above the LP64 size limit, and accelerator-backed array libraries. The internal FFT backend swap from pocketfft to ducc0 fits the same pattern of replacing inherited machinery.
Prediction
The Fortran-free build should move from developer-testing toward a supported option as feedback comes in, and array API coverage will likely keep expanding function by function, as it has each release.

Recent moves

  1. 1mo ago

    Fortran translation complete; three BLAS/LAPACK build modes; stats under JAX JIT

    ⚡ SPARK

    The release where the three long-running structural projects all land at once — the Fortran translation completes, ILP64 becomes a full build-mode matrix, and array API support crosses into JAX JIT territory. It is the culmination of what 1.17.0 started rather than a new direction.

    View source ↗
  2. 2mo ago

    Second release candidate for 1.18.0

    The second 1.18.0 release candidate, carrying the same feature set as rc1 with fix-level iteration on top. Useful as a testing checkpoint, not as a release.

    View source ↗
  3. 2mo ago

    First release candidate exposes the 1.18.0 build-mode and array API changes

    The first public availability of the 1.18.0 feature set — Fortran-free builds, the ILP64 build modes, and the expanded array API coverage. For downstream cython_lapack consumers this is where testing against the new backend machinery actually starts.

    View source ↗
  4. 5mo ago

    Bug-fix release on the 1.17.x branch

    A bug-fix release with no new features relative to 1.17.0, following the standard pattern of maintaining the previous branch while the next minor develops on main.

    View source ↗
  5. 7mo ago

    N-D batching across many functions, initial ILP64 support, ARPACK ported to C

    Sets up everything 1.18.0 completes: initial ILP64 BLAS/LAPACK support, more Fortran77 code ported to C including ARPACK and PROPACK, and native N-dimensional batching across many functions. The ARPACK rewrite also lets sparse linear algebra use external pseudorandom generators.

    View source ↗
  6. 7mo ago

    Second release candidate for 1.17.0

    A release candidate carrying the 1.17.0 feature set ahead of the final tag two weeks later. No content of its own beyond fix-level iteration.

    View source ↗