Changes
- fix: permute Data._decomposition and _modulo on transpose (fixes #2187) @gaoflow (#2938)
- ci: Pluralise inputs @JDBetteridge (#2875)
- compiler: Tweak use of degenerating_indices when determining iteration directions @EdCaunt (#2873)
- ci: Add UID to the dockertag @JDBetteridge (#2861)
- misc: Remove decrepit singularity def file @EdCaunt (#2860)
API
- api: add mul interp mode @mloubout (#2788)
- api: Fix handling of staggering in injection/interpolation @mloubout (#2936)
- api: fix injection expression indices @mloubout (#2927)
- api: allow spacing as grid input @mloubout (#2904)
- api: add support for no interp (interp_order=0) @mloubout (#2885)
Compiler
- compiler: Fix buffer stride runtime mismatch @mloubout (#2950)
- compiler: Minor tweaks to enable integrated NCU-based profiling @FabioLuporini (#2937)
- mpi: Drop dual mode and tweak overlap2/full modes for GPU backends @JDBetteridge (#2926)
- compiler: catch corner case read after write @mloubout (#2909)
- compiler: fix printing of nd pointers @mloubout (#2911)
- compiler: Add support for IBM Spectrum MPI @JDBetteridge (#2907)
- compiler: move launch check injection to later in compilation pipeline @EdCaunt (#2903)
- compiler: Enhance IterationSpace.translate @FabioLuporini (#2905)
- compiler: fix halo placement for non out dim exchange @mloubout (#2892)
- compiler: Add symbolic_strides property @FabioLuporini (#2897)
- dsl: Add ReduceMinMax construct for joint minmax reductions @FabioLuporini (#2890)
- compiler: Enhance detect_accesses and patch symbolic padding @FabioLuporini (#2886)
- compiler: fix operator arg processing and subsampling size @mloubout (#2883)
- compiler: Misc enhancements for lowering of parlang backends @FabioLuporini (#2878)
- compiler: Pass kwargs when invoking compiler passes @FabioLuporini (#2859)
- compiler: Patch degenerating_dimensions to catch SteppingDimensions over size 1 buffer @EdCaunt (#2869)
- compiler: revert skip empty alias @mloubout (#2867)
- compiler: Improve scalar aliases detection and scheduling @mloubout (#2858)
- compiler: Enhance IR to support more advanced parlang (CUDA/HIP/SYCL) features @FabioLuporini (#2840)
MPI
- mpi: fix halo ispace with subdomains @mloubout (#2908)
- compiler: Add support for IBM Spectrum MPI @JDBetteridge (#2907)
- compiler: fix halo placement for non out dim exchange @mloubout (#2892)
Architectures and JIT
- compiler: restrict nested parallelism to supported compilers (intel) @mloubout (#2923)
- compiler: Add support for IBM Spectrum MPI @JDBetteridge (#2907)
- arch: make deviceid moe felxible with cuda/rocm env vars @mloubout (#2906)
- compiler: load so directly when source is missing (e.g deleted c file) @mloubout (#2888)
🐛 Bug Fixes
- compiler: Fix buffer stride runtime mismatch @mloubout (#2950)
- arch: Fix Compiler.load in multiprocess scenario @FabioLuporini (#2952)
- compiler: Fix SizeOf reconstruction @FabioLuporini (#2946)
- compiler: Fixup DefFunction reconstruction @FabioLuporini (#2945)
- compiler: Tweak scheduling of scalar aliases in the presence of guards @FabioLuporini (#2942)
- compiler: Fix ComponentAccess.dtype @FabioLuporini (#2935)
- dsl: Warn if shrinking SpaceDimension bounds @FabioLuporini (#2934)
- compiler: misc sparse bug fixes @mloubout (#2912)
- compiler: Fix efunc abstraction for MinMax pragma-based kernels @FabioLuporini (#2891)
- Hotfix check_array @FabioLuporini (#2889)
- compiler: fix operator arg processing and subsampling size @mloubout (#2883)
- compiler: Fixup halo exchange with sequentially-iterated, distributed dimensions @FabioLuporini (#2882)
Testing
- JDBetteridge/Composite actions @JDBetteridge (#2868)
Continuous Integration
- CI: prevent dependabot from updating lower bound of deps @mloubout (#2919)
- JDBetteridge/Composite actions @JDBetteridge (#2868)
Installation
- misc: Move pytest.ini to pyproject.toml @JDBetteridge (#2922)
- CI: revert bad dependabot bound updates @mloubout (#2918)
- pip prod(deps): update pytest requirement from <9.1,>=7.2 to >=9.0.3,<9.1 @dependabot[bot] (#2901)
- pip prod(deps): update cgen requirement from <2026,>=2020.1 to >=2025.1,<2026 @dependabot[bot] (#2900)
- pip prod(deps): update psutil requirement from <8.0,>=5.1.0 to >=7.2.2,<8.0 @dependabot[bot] (#2899)
- pip prod(deps): update flake8-pyproject requirement from <1.2.5,>=1.2.3 to >=1.2.4,<1.2.5 @dependabot[bot] (#2898)
- gh(deps): bump conda-incubator/setup-miniconda from 3 to 4 @dependabot[bot] (#2902)
- pip prod(deps): update packaging requirement from <26.1 to <26.2 @dependabot[bot] (#2887)
- pip prod(deps): update distributed requirement from <2026.1.3 to <2026.3.1 @dependabot[bot] (#2872)
- pip prod(deps): update pytest-cov requirement from <7.0.1 to <7.1.1 @dependabot[bot] (#2874)
- gh(deps): bump release-drafter/release-drafter from 6 to 7 @dependabot[bot] (#2876)
- gh(deps): bump codecov/codecov-action from 5 to 6 @dependabot[bot] (#2877)
- pip prod(deps): update fsspec requirement from <2026.2.1 to <2026.3.1 @dependabot[bot] (#2879)
- pip prod(deps): update pillow requirement from <12.1.2,>11 to >11,<12.2.1 @dependabot[bot] (#2880)
- gh(deps): bump docker/setup-qemu-action from 3 to 4 @dependabot[bot] (#2864)
- gh(deps): bump docker/metadata-action from 5 to 6 @dependabot[bot] (#2862)
- gh(deps): bump docker/setup-buildx-action from 3 to 4 @dependabot[bot] (#2863)
- gh(deps): bump docker/login-action from 3 to 4 @dependabot[bot] (#2865)
- gh(deps): bump docker/build-push-action from 6 to 7 @dependabot[bot] (#2866)
- pip prod(deps): update ipyparallel requirement from <9.1 to <9.2 @dependabot[bot] (#2870)
- JDBetteridge/Composite actions @JDBetteridge (#2868)
- pip prod(deps): update cupy-cuda12x requirement from <14.0.1 to <14.0.2 @dependabot[bot] (#2857)
New Contributors
Full Changelog: v4.8.21...v4.8.22