Skip to content

Python 3.11 #8304

Closed
Closed

Description

@esc

This is the meta/coordination issue for Python 3.11 support for Numba and llvmlite.

Note: The issue text will be updated continuously to reflect the current process and progress.

As Numba interfaces with cpython on the bytecode and C-level, Python minor version upgrades present a significant compatibility challenge and have -- in the past -- required multiple PRs over multiple months of work. For Python 3.11 this issue will serve as a central point of coordination of the efforts. As such it will list the current branches pertaining to Python 3.11 support in addition to using the tag Python 3.11.

In order to support testing against beta releases and release candidates, I created a small utility that allows easy setup of a Numba development environment against a Python pre-release docker container. https://github.com/numba/numba-hatchery this can be used with development branches/repositories of Numba and llvmlite.

Activity

  1. added a commit that references this issue on Jan 7, 2023
  2. jschwar313 commented on Jan 11, 2023

    @jschwar313

    Is there a pip command available to install a dev version of numba on python 3.11.1?

  3. jamesmyatt commented on Jan 11, 2023

    @jamesmyatt

    Is there a pip command available to install a dev version of numba on python 3.11.1?

    Look at https://pip.pypa.io/en/stable/topics/vcs-support/ and Example #5 here https://pip.pypa.io/en/stable/cli/pip_install/#examples

  4. jschwar313 commented on Jan 11, 2023

    @jschwar313

    Yea, that part I know. What's the github location of the software I would install that would replace the numba package? That I don't know. Thanks.

  5. sklam commented on Jan 12, 2023

    @sklam
    Member

    If you want to pip install via the vcs support, you can do so via pip install git+https://github.com/numba/numba@py3.11. But bewared that installing llvmlite is not as easy due to llvm. That is why we provided a docker setup for testing. The easiest way to get the llvm is still by using our llvmdev conda package.

  6. added a commit that references this issue on Jan 12, 2023
  7. MarcusTherkildsen commented on Jan 24, 2023

    @MarcusTherkildsen

    6 months and still no sign of a release. What's the hold up?

  8. esc commented on Jan 25, 2023

    @esc
    MemberAuthor

    6 months and still no sign of a release. What's the hold up?

    Thank you for asking about this. To clarify, the hold-up comes from two sources:

    • Waiting on anaconda-official Python 3.11 conda packages, inkl. dependencies (Numpy, etc..) -- Python 3.11 is available at the time of writing, but the dependencies are missing. Our build and release pipelines depend on anaconda-conda packages for the time being and while there are conda-forge packages, there are too unstable for our needs and have caused more issues than solved ones in the past. Upgrading the pipeline for some other build system is not an option due to resource constraints.

    • The need to update the Numba code-base to support Python 3.11. Numba operates on Python bytecode and this is essentially a moving target. It takes between 3-6 months of work for every minor Python release to make Numba compatible with the new bytecode version. Bytecode isn't designed as an interface, so both the number of bytecodes and how each one behaves changes significantly with every Python minor Version. For Python 3.11 we are almost there and there are only a handful of tests still failing, last time I checked.

    In the name of the Numba developers I would like to re-iterate that we are grateful for your continued patience on this front. It's not long to go now and based on today's evidence I expect a Numba release candidate that supports Python 3.11 to become available in 3-6 weeks. 🙏

  9. MarcusTherkildsen commented on Jan 25, 2023

    @MarcusTherkildsen

    That sounds great, thanks for the update!

  10. esc commented on Feb 20, 2023

    @esc
    MemberAuthor

    Just a quick update here. We are still working on this. The Python 3.11 support is now complete and we are waiting on certain Numba dependencies to be packaged as conda packages via anaconda.org (can be tracked at: ContinuumIO/anaconda-issues#13082). Most things for the next release are in place and things are moving forward. Thank you again everyone for your sustained patience!!

  11. thebaptiste commented on Feb 20, 2023

    @thebaptiste

    May be you should consider using something else than conda for your CI ?
    Your code seems to be ready, your dependencies are also ready (tarballs or wheels), but you have to wait for conda packages, what a waste of time !
    May be you could considerer providing a tarball pre-release ?

  12. tanlin2013 commented on Feb 20, 2023

    @tanlin2013

    Perhaps we could also release on pip first. That will be appreciated too!

  13. seibert commented on Feb 20, 2023

    @seibert
    Contributor

    Just to clarify: This is definitely something we want to improve, but the challenge here is in testing and validating that Numba works in every way it needs to in every environment we support. Putting Numba into a package file (conda or wheel or whatever) is relatively more straightforward, but that doesn't ensure it will work.

    We have relied on conda mostly because it enabled us to easily create 100+ different environment configurations across different combinations of CPU platform (x86, arm, ppc), operating system (win, mac, linux), numpy (several here), as well as to check parallel execution with various threading backends (OpenMP, TBB, etc), along with different CUDA versions. One we are sure all that is OK, then making a final wheel/sdist is not much trouble.

    So the take away is that we definitely hear the feedback, but are seeking a way to ensure we can efficiently test Numba so that when a new release is posted, it will work for everyone. We have some ideas and will try some process changes this year.

  14. MarcusTherkildsen commented on Mar 6, 2023

    @MarcusTherkildsen

    Hi again

    25th of January you said:

    "It's not long to go now and based on today's evidence I expect a Numba release candidate that supports Python 3.11 to become available in 3-6 weeks. 🙏"

    We are closing in on 6 weeks now (in two days). What is the status?
    Thanks for your hard work, it makes our work a lot easier :)

  15. esc commented on Mar 6, 2023

    @esc
    MemberAuthor

    @MarcusTherkildsen thank you for asking about this. I asked around today and here is what I gather:

    • the packages for 3.11 should arrive early next week as @cbouss will be able to acknowledge
    • the dev branches for the support of Numpy 1.24, LLVM 14 and Python 3.11 are ready to merge
    • @sklam has built some internal testing around conda-forge packages that will allow us to perform tests and attempt the aforementioned merges

    So the TL;DR: progress has been made and chances are good to get a release candidate next week or the week after, barring any more major issues arising during integration of the dev branches.

    Also, It looks like @sklam will be the release manager for this one -- so please feel free to add more context in case I forgot something!

  16. SimonBiggs commented on Mar 8, 2023

    @SimonBiggs

    seeking a way to ensure we can efficiently test Numba so that when a new release is posted, it will work for everyone. We have some ideas and will try some process changes this year.

    An amazing approach to this is to deploy dev releases on PyPI. Get us (the community) to make sure things work for you 🙂

    If there was currently a dev release on PyPI for llvm and numba, I'd certainly be keen to be testing that out for you.


    Also, I tried the following to craft my own dev release, but had no success. See my attempt below.


    git clone https://github.com/numba/numba.git
    git checkout py3.11
    pip install -e .

    And I got the following:

    $ pip install -e .
    Obtaining file:///home/simon/git/numba
      Preparing metadata (setup.py) ... done
    ERROR: Ignored the following versions that require a different python version: 0.36.0 Requires-Python >=3.6,<3.10; 0.37.0 Requires-Python >=3.7,<3.10; 0.38.0 Requires-Python >=3.7,<3.11; 0.38.1 Requires-Python >=3.7,<3.11
    ERROR: Could not find a version that satisfies the requirement llvmlite<0.41,>=0.40.0dev0 (from numba) (from versions: 0.2.0, 0.2.1, 0.2.2, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.0, 0.9.0, 0.10.0, 0.11.0, 0.12.0.1, 0.12.1, 0.13.0, 0.14.0, 0.15.0, 0.16.0, 0.17.0, 0.17.1, 0.18.0, 0.19.0, 0.20.0, 0.21.0, 0.22.0, 0.23.0, 0.23.2, 0.24.0, 0.25.0, 0.26.0, 0.27.0, 0.27.1, 0.28.0, 0.29.0, 0.30.0, 0.31.0, 0.32.0, 0.32.1, 0.33.0, 0.34.0, 0.35.0, 0.39.0, 0.39.1)
    ERROR: No matching distribution found for llvmlite<0.41,>=0.40.0dev0

    I then tried:

    git clone https://github.com/numba/llvmlite
    cd llvmlite
    git checkout drop_python_upper_limit_from_conda_recipe
    pip install -e .

    And I got the following:

    $ pip install -e .
    Obtaining file:///home/simon/git/llvmlite
      Preparing metadata (setup.py) ... error
      error: subprocess-exited-with-error
      
      × python setup.py egg_info did not run successfully.
      │ exit code: 1
      ╰─> [8 lines of output]
          Traceback (most recent call last):
            File "<string>", line 2, in <module>
            File "<pip-setuptools-caller>", line 34, in <module>
            File "/home/simon/git/llvmlite/setup.py", line 45, in <module>
              _guard_py_ver()
            File "/home/simon/git/llvmlite/setup.py", line 42, in _guard_py_ver
              raise RuntimeError(msg.format(cur_py, min_py, max_py))
          RuntimeError: Cannot install on Python version 3.11.2; only versions >=3.8,<3.11 are supported.
          [end of output]
      
      note: This error originates from a subprocess, and is likely not a problem with pip.
    error: metadata-generation-failed
    
    × Encountered error while generating package metadata.
    ╰─> See above for output.
    
    note: This is an issue with the package mentioned above, not pip.
    hint: See above for details.

    I then ran the following:

    sed -i "/max_python_version = (3, 11)  # exclusive/c\max_python_version = (3, 12)  # exclusive" setup.py
    pip install -e .

    And got:

    $ pip install -e .
    Obtaining file:///home/simon/git/llvmlite
      Preparing metadata (setup.py) ... done
    Installing collected packages: llvmlite
      Running setup.py develop for llvmlite
        error: subprocess-exited-with-error
        
        × python setup.py develop did not run successfully.
        │ exit code: 1
        ╰─> [33 lines of output]
            /home/simon/.asdf/installs/python/3.11.2/lib/python3.11/site-packages/setuptools/dist.py:530: UserWarning: Normalizing '0.40.0dev0+49.g9837c5d.dirty' to '0.40.0.dev0+49.g9837c5d.dirty'
              warnings.warn(tmpl.format(**locals()))
            running develop
            /home/simon/.asdf/installs/python/3.11.2/lib/python3.11/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
              warnings.warn(
            /home/simon/.asdf/installs/python/3.11.2/lib/python3.11/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
              warnings.warn(
            running egg_info
            creating llvmlite.egg-info
            writing llvmlite.egg-info/PKG-INFO
            writing dependency_links to llvmlite.egg-info/dependency_links.txt
            writing top-level names to llvmlite.egg-info/top_level.txt
            writing manifest file 'llvmlite.egg-info/SOURCES.txt'
            reading manifest file 'llvmlite.egg-info/SOURCES.txt'
            reading manifest template 'MANIFEST.in'
            warning: no previously-included files matching 'CMakeCache.txt' found anywhere in distribution
            adding license file 'LICENSE'
            writing manifest file 'llvmlite.egg-info/SOURCES.txt'
            running build_ext
            /home/simon/.asdf/installs/python/3.11.2/bin/python3.11 /home/simon/git/llvmlite/ffi/build.py
            LLVM version... 14.0.0
            
            Traceback (most recent call last):
              File "/home/simon/git/llvmlite/ffi/build.py", line 226, in <module>
                main()
              File "/home/simon/git/llvmlite/ffi/build.py", line 216, in main
                main_posix('linux', '.so')
              File "/home/simon/git/llvmlite/ffi/build.py", line 173, in main_posix
                raise RuntimeError(msg)
            RuntimeError: Building llvmlite requires LLVM 11.x.x, got '14.0.0'. Be sure to set LLVM_CONFIG to the right executable path.
            Read the documentation at http://llvmlite.pydata.org/ for more information about building llvmlite.
            
            error: command '/home/simon/.asdf/installs/python/3.11.2/bin/python3.11' failed with exit code 1
            [end of output]
        
        note: This error originates from a subprocess, and is likely not a problem with pip.
    error: subprocess-exited-with-error
    
    × python setup.py develop did not run successfully.
    │ exit code: 1
    ╰─> [33 lines of output]
        /home/simon/.asdf/installs/python/3.11.2/lib/python3.11/site-packages/setuptools/dist.py:530: UserWarning: Normalizing '0.40.0dev0+49.g9837c5d.dirty' to '0.40.0.dev0+49.g9837c5d.dirty'
          warnings.warn(tmpl.format(**locals()))
        running develop
        /home/simon/.asdf/installs/python/3.11.2/lib/python3.11/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
          warnings.warn(
        /home/simon/.asdf/installs/python/3.11.2/lib/python3.11/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
          warnings.warn(
        running egg_info
        creating llvmlite.egg-info
        writing llvmlite.egg-info/PKG-INFO
        writing dependency_links to llvmlite.egg-info/dependency_links.txt
        writing top-level names to llvmlite.egg-info/top_level.txt
        writing manifest file 'llvmlite.egg-info/SOURCES.txt'
        reading manifest file 'llvmlite.egg-info/SOURCES.txt'
        reading manifest template 'MANIFEST.in'
        warning: no previously-included files matching 'CMakeCache.txt' found anywhere in distribution
        adding license file 'LICENSE'
        writing manifest file 'llvmlite.egg-info/SOURCES.txt'
        running build_ext
        /home/simon/.asdf/installs/python/3.11.2/bin/python3.11 /home/simon/git/llvmlite/ffi/build.py
        LLVM version... 14.0.0
        
        Traceback (most recent call last):
          File "/home/simon/git/llvmlite/ffi/build.py", line 226, in <module>
            main()
          File "/home/simon/git/llvmlite/ffi/build.py", line 216, in main
            main_posix('linux', '.so')
          File "/home/simon/git/llvmlite/ffi/build.py", line 173, in main_posix
            raise RuntimeError(msg)
        RuntimeError: Building llvmlite requires LLVM 11.x.x, got '14.0.0'. Be sure to set LLVM_CONFIG to the right executable path.
        Read the documentation at http://llvmlite.pydata.org/ for more information about building llvmlite.
        
        error: command '/home/simon/.asdf/installs/python/3.11.2/bin/python3.11' failed with exit code 1
        [end of output]
    
    note: This error originates from a subprocess, and is likely not a problem with pip.
    

    I then had a look at the guides around that (https://llvmlite.readthedocs.io/en/latest/admin-guide/install.html#compiling-llvm)... and after ~30 mins gave up 🙁


    Take 2

    Following the guide in the docs:
    http://llvmlite.pydata.org/en/latest/admin-guide/install.html#compiling-llvm

    wget https://github.com/llvm/llvm-project/releases/download/llvmorg-11.1.0/llvm-11.1.0.src.tar.xz
    tar -xvf llvm-11.1.0.src.tar.xz
    cd llvm-11.1.0.src
    
    patch -p1 -i ../llvmlite/conda-recipes/llvm-lto-static.patch  # Patch failed
    patch -p1 -i ../llvmlite/conda-recipes/partial-testing.patch  # Patch succeeded
    patch -p1 -i ../llvmlite/conda-recipes/intel-D47188-svml-VF.patch  # Patch succeeded
    patch -p1 -i ../llvmlite/conda-recipes/expect-fastmath-entrypoints-in-add-TLI-mappings.ll.patch  # Patch succeeded
    patch -p1 -i ../llvmlite/conda-recipes/0001-Revert-Limit-size-of-non-GlobalValue-name.patch  # Patch succeeded
    patch -p1 -i ../llvmlite/conda-recipes/llvm_11_consecutive_registers.patch  # A lot of missing files, many files ignored, patch only partially applied
    

    Installation

    export PREFIX=. CPU_COUNT=24
    chmod +x ../llvmlite/conda-recipes/llvmdev/build.sh
    ../llvmlite/conda-recipes/llvmdev/build.sh
    

    I'll report back once it's built...

  17. SimonBiggs commented on Mar 9, 2023

    @SimonBiggs

    Unfortunately the build errored like so: 🙁

    [ 98%] Building CXX object utils/benchmark/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o
    In file included from /home/simon/git/llvm-11.1.0.src/utils/benchmark/src/benchmark_register.cc:15:
    /home/simon/git/llvm-11.1.0.src/utils/benchmark/src/benchmark_register.h: In function ‘void AddRange(std::vector<T>*, T, T, int)’:
    /home/simon/git/llvm-11.1.0.src/utils/benchmark/src/benchmark_register.h:17:30: error: ‘numeric_limits’ is not a member of ‘std’
       17 |   static const T kmax = std::numeric_limits<T>::max();
          |                              ^~~~~~~~~~~~~~
    /home/simon/git/llvm-11.1.0.src/utils/benchmark/src/benchmark_register.h:17:46: error: expected primary-expression before ‘>’ token
       17 |   static const T kmax = std::numeric_limits<T>::max();
          |                                              ^
    /home/simon/git/llvm-11.1.0.src/utils/benchmark/src/benchmark_register.h:17:49: error: ‘::max’ has not been declared; did you mean ‘std::max’?
       17 |   static const T kmax = std::numeric_limits<T>::max();
          |                                                 ^~~
          |                                                 std::max
    In file included from /usr/include/c++/11/algorithm:62,
                     from /home/simon/git/llvm-11.1.0.src/utils/benchmark/include/benchmark/benchmark.h:175,
                     from /home/simon/git/llvm-11.1.0.src/utils/benchmark/src/internal_macros.h:4,
                     from /home/simon/git/llvm-11.1.0.src/utils/benchmark/src/check.h:8,
                     from /home/simon/git/llvm-11.1.0.src/utils/benchmark/src/benchmark_register.h:6,
                     from /home/simon/git/llvm-11.1.0.src/utils/benchmark/src/benchmark_register.cc:15:
    /usr/include/c++/11/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here
     3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
          |     ^~~
    make[2]: *** [utils/benchmark/src/CMakeFiles/benchmark.dir/build.make:90: utils/benchmark/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o] Error 1
    make[1]: *** [CMakeFiles/Makefile2:120910: utils/benchmark/src/CMakeFiles/benchmark.dir/all] Error 2
    make: *** [Makefile:156: all] Error 2
    + exit 2
    

    But nevertheless, when I run the following the pip install works:

    export LLVM_CONFIG=/home/simon/git/llvm-11.1.0.src/build/bin/llvm-config
    cd ~/git/llvmlite/
    pip install -e .
    

    Here's a zip file of the compiled bin directory if others want to use it:

    [Redacted (see request below)]

    And installing numba works:

    cd ../numba/
    pip install -e .
    
    $ pip install -e .
    Obtaining file:///home/simon/git/numba
      Preparing metadata (setup.py) ... done
    Requirement already satisfied: llvmlite<0.41,>=0.40.0dev0 in /home/simon/git/llvmlite (from numba==0.57.0.dev0+881.gb91e31d86) (0.40.0.dev0+49.g9837c5d.dirty)
    Collecting numpy>=1.18
      Using cached numpy-1.24.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
    Requirement already satisfied: setuptools in /home/simon/.asdf/installs/python/3.11.2/lib/python3.11/site-packages (from numba==0.57.0.dev0+881.gb91e31d86) (65.5.0)
    Installing collected packages: numpy, numba
      Running setup.py develop for numba
    Successfully installed numba-0.57.0.dev0+881.gb91e31d86 numpy-1.24.2
    

    But unfortunately importing numba after installation doesn't work:

    $ ipython
    Python 3.11.2 (main, Mar  7 2023, 09:37:22) [GCC 11.3.0]
    Type 'copyright', 'credits' or 'license' for more information
    IPython 8.11.0 -- An enhanced Interactive Python. Type '?' for help.
    
    In [1]: import numba
    ---------------------------------------------------------------------------
    SystemError                               Traceback (most recent call last)
    Cell In[1], line 1
    ----> 1 import numba
    
    File ~/git/numba/numba/__init__.py:42
         38 from numba.core.decorators import (cfunc, generated_jit, jit, njit, stencil,
         39                                    jit_module)
         41 # Re-export vectorize decorators and the thread layer querying function
    ---> 42 from numba.np.ufunc import (vectorize, guvectorize, threading_layer,
         43                             get_num_threads, set_num_threads,
         44                             set_parallel_chunksize, get_parallel_chunksize,
         45                             get_thread_id)
         47 # Re-export Numpy helpers
         48 from numba.np.numpy_support import carray, farray, from_dtype
    
    File ~/git/numba/numba/np/ufunc/__init__.py:3
          1 # -*- coding: utf-8 -*-
    ----> 3 from numba.np.ufunc.decorators import Vectorize, GUVectorize, vectorize, guvectorize
          4 from numba.np.ufunc._internal import PyUFunc_None, PyUFunc_Zero, PyUFunc_One
          5 from numba.np.ufunc import _internal, array_exprs
    
    File ~/git/numba/numba/np/ufunc/decorators.py:3
          1 import inspect
    ----> 3 from numba.np.ufunc import _internal
          4 from numba.np.ufunc.parallel import ParallelUFuncBuilder, ParallelGUFuncBuilder
          6 from numba.core.registry import DelayedRegistry
    
    SystemError: initialization of _internal failed without raising an exception
    
  18. jakirkham commented on Mar 9, 2023

    @jakirkham
    Contributor

    It might be easier to start from something like the conda-forge recipes when building locally. There's even a PR for llvmlite to add Python 3.11 ( conda-forge/llvmlite-feedstock#66 ). Though it will require more recent source code for llvmlite, which is easy enough to add

  19. sirfz commented on Mar 9, 2023

    @sirfz

    Regarding the patches, indeed llvm-lto-static.patch and llvm_11_consecutive_registers.patch are broken. I have "fixed" local copies that work:

    llvm-lto-static.patch:

    --- a/tools/lto/CMakeLists.txt	2021-02-03 21:51:10.000000000 +0000
    +++ b/tools/lto/CMakeLists.txt	2023-02-28 17:42:20.659354043 +0000
    @@ -21,7 +21,7 @@
     
     set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
     
    -add_llvm_library(LTO SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS
    +add_llvm_library(LTO INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS
         intrinsics_gen)
     
     install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
    

    as for llvm_11_consecutive_registers.patch, just remove llvm/ from the beginning of all file paths and it'll succeed. (e.g. a/include/llvm/CodeGen/TargetLowering.h instead of a/llvm/include/llvm/CodeGen/TargetLowering.h)

  20. esc commented on Mar 10, 2023

    @esc
    MemberAuthor

    @SimonBiggs @sirfz @jakirkham thank you for adding to this issue! Yes, it is true that Numba/llvmlite are tricky to build(!), since this thread is about Python 3.11 support, if you are still (interested in)/(trying to) create a dev release I would encourage you to open a new issue titled "difficulties creating dev build", so that we can keep the signal-to noise ratio low for all parties subscribed to this issue. We will be happy to assist and help debug, but please the read the following comments below first.

    • Regarding PyPi dev releases: this is something we are actively considering, including building wheels using GitHubActions.
    • Regarding dev releases in general: we have created a tool "numba-hatchery" which is a docker based collection of scripts to build the full llvmdev/llvmlite/Numba stack with more ease, an announcement was posted here: https://numba.discourse.group/t/ann-docker-image-for-early-testing-numba-on-python-3-11/1698
    • Regarding the patches: I took another look at the documentation, and it seems it is slightly out of date. The patches that need to be applied to LLVM are always listed in the conda-recipe: https://github.com/numba/llvmlite/blob/v0.39.1/conda-recipes/llvmdev/meta.yaml#L16-L24 -- this means you don't need to apply the llvm-lto-static.patch and for the llvm_11_consecutive_registers.patch it needs to be applied using -p2 not -p1 (conda-build is smart enough to auto-detect the patch level, so this went unnoticed). These are bugs in the llvmlite documentation, but since we are now moving to LLVM14 they will need to be upgraded to---whatever that LLVM version needs---as part of llvmlite v0.40.0 anyway.
    • The issue encountered at Python 3.11 #8304 (comment) -- is due to lack of support for Numpy 1.24 -- you'll need to include the patches from the "Numpy 1.24 support" development-branch if you wish to test Numba with this.
    • Lastly, due to the increasing number of supply chain attacks, we frown upon third parties posting links to binary artifacts for download like in: Python 3.11 #8304 (comment) -- to this end @SimonBiggs please redact the link to the zip-file you posted, thank you.

    Thank you again all for adding to this issue and thank you again everyone subscribed for your continued patience, we hope to have some Numba and llvmlite release candidates soon! 🙏 🙏 🙏

  21. Scolymus commented on Mar 10, 2023

    @Scolymus

    hey @esc ,

    so I understand this version won't be compatible with numpy>1.24, right? I know it may not be the place to ask but, can I know what's the problem with numpy >1.24 and when there will be a version for that? I never use numba, but just install a repo dependent on numba, and after having my project working in local and integrating in a bigger project I realized numba wasn't working with numpy 1.25, which is what we use in the other project... I installed 0.57.0dev0 to allow pip to install numba while having numpy > 1.24, but I got an error that I saw is related with numpy version in a different issue:
    initialization of _internal failed without raising an exception

  22. esc commented on Mar 10, 2023

    @esc
    MemberAuthor

    @Scolymus -- from what I can tell support for 1.24 was merged here: #8691 --

  23. esc commented on Mar 10, 2023

    @esc
    MemberAuthor

    @Scolymus and 1.25 support is no implemented yet and being tracked here: #8698

  24. imichaelmoore commented on Mar 14, 2023

    @imichaelmoore

    This issue is quite convoluted at this point, could one of the maintainers chime in and let the community know specifically what they need help with in terms of testing? We are all watching this issue but at this point it's not clear what needs to be tested to enable a release. (And we want to help! 😄 )

  25. esc commented on Mar 14, 2023

    @esc
    MemberAuthor

    This issue is quite convoluted at this point, could one of the maintainers chime in and let the community know specifically what they need help with in terms of testing? We are all watching this issue but at this point it's not clear what needs to be tested to enable a release. (And we want to help! 😄 )

    Sure, allow me to chime in! @sklam is currently still merging development branches and we are hoping to publish a release candidate next week (maybe the week after...). As soon the projects have been tagged and the build artifacts produced, we will be very grateful for everyone to test those candidates with their respective libraries and applications (and of course... to report back any encountered issues). An announcement with instructions on how to install will be posted to our discourse (numba.discourse.group) and will post a link here too, pointing everyone in the right direction.

  26. kaluzniacki commented on Mar 17, 2023

    @kaluzniacki

    The developers have my sympathies - I very much understand how using conda makes things easier - I hope to never have to install gdal without conda, and I can install independent versions of gcc with conda. Best of luck!

  27. sklam commented on Mar 21, 2023

    @sklam
    Member

    Py3.11 branch have been merged to main by #8822

  28. sklam commented on Mar 22, 2023

    @sklam
    Member

    We are planning to cut an RC next week. Closing

  29. jakirkham commented on Mar 22, 2023

    @jakirkham
    Contributor

    Is there an issue to track updates on the RC and releases?

  30. stuartarchibald commented on Mar 23, 2023

    @stuartarchibald
    Contributor

    Is there an issue to track updates on the RC and releases?

    A Release Candidate checklist for 0.57.0rc1 is now in #8841. Please do subscribe to that if you are interested in following progress. The official RC announcement will be made on the discourse forum as usual.

  31. unpinned this issue on May 3, 2023
  32. quanqigu commented on Mar 18, 2025

    @quanqigu

    Python3.11 is supported from numba 0.57.0.

  33. hauntsaninja commented on Mar 18, 2025

    @hauntsaninja
    Contributor

    https://github.com/hauntsaninja/python_readiness

    λ uv tool run python_readiness --python 3.11 --package numba
    numba>=0.57.0     # has_classifier_and_explicit_wheel
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions