[ANN] Numba 0.57.0rc1 and llvmlite 0.40.0rc1

Dear all,

On behalf of the Numba crew I am happy to announce the availability of Numba 0.57.0 RC1 and llvmlite 0.40.0 RC1. This release adds support for Python 3.11 and NumPy 1.24, and upgrades to LLVM 14.

As usual, you can install these release candidates with conda from the numba channel on anaconda.org:

conda install -c numba numba=0.57.0rc1
conda install -c numba llvmlite=0.40.0rc1

Or alternatively install the wheels form PyPi with pip:

pip install numba==0.57.0rc1
pip install llvmlite==0.40.0rc1 

You can find the release notes at: https://numba.readthedocs.io/en/0.57.0rc1/release-notes.html#version-0-57-0-tbc

Please do test these release candidates with your libraries and applications and report back any issues you may encounter here, thank you!

(ping @RC_Testers )

6 Likes

Dear Numba Team,

I hope this message finds you well, despite the immense workload you are shouldering. I would like to express my profound appreciation for your selfless dedication and the extraordinary effort you put into the development of Numba.

The upcoming release promises an impressive array of features, and I’m particularly excited about the non-constant exception returns. I have four libraries on PyPI (thermo, chemicals, fluids, ht) that can integrate with Numba’s remarkable acceleration. I have designed them so that Numba’s integration is entirely optional, preserving their functionality even without it. I can mark functions as unsupported by Numba, and many of them already are.

I ran each of my libraries test suites of these libraries with the new version of numba on Python 3.11. I found 5 tests that use numba that are now failing (whereas with Python 3.8-3.10 and the previous version of numba they were passing). I think there is a common issue between each of the failures as they all return the same error message while compiling:

UnsupportedError: Failed in nopython mode pipeline (step: analyzing bytecode)
CALL_FUNCTION_EX with **kwargs not supported

I’ve tried to make a minimal example, below. I hope this feedback is of some use. Thank you all for your very hard work on Numba!

import numba

@numba.njit
def Thome(m, x, D, rhol, rhog, mul, mug, kl, kg, Cpl, Cpg, Hvap, sigma, Psat,
          Pc, q):
    if q is None :
        q = 1e5
        return Thome(m=m, x=x, D=D, rhol=rhol, rhog=rhog, kl=kl, kg=kg, mul=mul,
                     mug=mug, Cpl=Cpl, Cpg=Cpg, sigma=sigma, Hvap=Hvap, Psat=Psat,
                     Pc=Pc, q=q)
    return 1.0

Thome(m=1, x=0.4, D=0.3, rhol=567., rhog=18.09, kl=0.086, kg=0.2, mul=156E-6, mug=1E-5, Cpl=2300.0, Cpg=1400.0, sigma=0.02, Hvap=9E5, Psat=1E5, Pc=22E6, q=1E5)

Warm regards,
Caleb Bell

Thank you for reporting the error and making the minimal example. It’s very helpful for debugging. I have made an issue for it at 0.57.0rc1 UnsupportedError when number of keyword arguments in CALL_FUNCTION_EX is 16 or more · Issue #8900 · numba/numba · GitHub.