Unverified Commit 555be4e7 authored by Martin Weinelt's avatar Martin Weinelt Committed by GitHub
Browse files

Merge pull request #199910 from tpwrules/upgrade-numba

parents 5a880f03 ca267996
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
diff --git a/numba/cuda/cuda_paths.py b/numba/cuda/cuda_paths.py
index b9988bc..a642680 100644
index 0da435d33..7b1fde087 100644
--- a/numba/cuda/cuda_paths.py
+++ b/numba/cuda/cuda_paths.py
@@ -24,10 +24,7 @@ def _find_valid_path(options):
@@ -14,15 +14,12 @@ index b9988bc..a642680 100644
     ]
     by, libdir = _find_valid_path(options)
     return by, libdir
@@ -35,18 +32,16 @@ def _get_libdevice_path_decision():
@@ -35,16 +32,14 @@ def _get_libdevice_path_decision():
 
 def _nvvm_lib_dir():
     if IS_WIN32:
-        return 'nvvm', 'bin'
+        return 'bin',
     elif IS_OSX:
-        return 'nvvm', 'lib'
+        return 'lib',
     else:
-        return 'nvvm', 'lib64'
+        return 'lib64',
@@ -37,9 +34,9 @@ index b9988bc..a642680 100644
     ]
     by, path = _find_valid_path(options)
     return by, path
@@ -74,14 +69,12 @@ def _cudalib_path():
     elif IS_OSX:
         return 'lib'
@@ -64,14 +59,12 @@ def _cudalib_path():
     if IS_WIN32:
         return 'bin'
     else:
-        return 'lib64'
+        return 'lib'
@@ -54,7 +51,7 @@ index b9988bc..a642680 100644
     ]
     by, libdir = _find_valid_path(options)
     return by, libdir
@@ -92,6 +85,22 @@ def _get_cudalib_dir():
@@ -82,6 +75,22 @@ def _get_cudalib_dir():
     return _env_path_tuple(by, libdir)
 
 
+40 −8
Original line number Diff line number Diff line
@@ -11,6 +11,8 @@
, libcxx
, importlib-metadata
, substituteAll
, runCommand
, fetchpatch

# CUDA-only dependencies:
, addOpenGLRunpath ? null
@@ -23,14 +25,14 @@
let
  inherit (cudaPackages) cudatoolkit;
in buildPythonPackage rec {
  version = "0.56.2";
  version = "0.56.4";
  pname = "numba";
  format = "setuptools";
  disabled = pythonOlder "3.6" || pythonAtLeast "3.11";

  src = fetchPypi {
    inherit pname version;
    hash = "sha256-NJLwpdCeJX/FIfU3emxrkH7sGSDRRznwskWLnSmUalo=";
    hash = "sha256-Mtn+9BLIFIPX7+DOts9NMxD96LYkqc7MoA95BXOslu4=";
  };

  postPatch = ''
@@ -55,7 +57,15 @@ in buildPythonPackage rec {
    cudatoolkit.lib
  ];

  patches = lib.optionals cudaSupport [
  patches = [
    # fix failure in test_cache_invalidate (numba.tests.test_caching.TestCache)
    # remove when upgrading past version 0.56
    (fetchpatch {
      name = "fix-test-cache-invalidate-readonly.patch";
      url = "https://github.com/numba/numba/commit/993e8c424055a7677b2755b184fc9e07549713b9.patch";
      hash = "sha256-IhIqRLmP8gazx+KWIyCxZrNLMT4jZT8CWD3KcH4KjOo=";
    })
  ] ++ lib.optionals cudaSupport [
    (substituteAll {
      src = ./cuda_path.patch;
      cuda_toolkit_path = cudatoolkit;
@@ -70,18 +80,40 @@ in buildPythonPackage rec {
    done
  '';

  # Copy test script into $out and run the test suite.
  # run a smoke test in a temporary directory so that
  # a) Python picks up the installed library in $out instead of the build files
  # b) we have somewhere to put $HOME so some caching tests work
  # c) it doesn't take 6 CPU hours for the full suite
  checkPhase = ''
    ${python.interpreter} -m numba.runtests
  '';
    runHook preCheck

    pushd $(mktemp -d)
    HOME=. ${python.interpreter} -m numba.runtests -m $NIX_BUILD_CORES numba.tests.test_usecases
    popd

  # ImportError: cannot import name '_typeconv'
  doCheck = false;
    runHook postCheck
  '';

  pythonImportsCheck = [
    "numba"
  ];

  passthru.tests = {
    # CONTRIBUTOR NOTE: numba also contains CUDA tests, though these cannot be run in
    # this sandbox environment. Consider running similar commands to those below outside the
    # sandbox manually if you have the appropriate hardware; support will be detected
    # and the corresponding tests enabled automatically.
    # Also, the full suite currently does not complete on anything but x86_64-linux.
    fullSuite = runCommand "${pname}-test" {} ''
      pushd $(mktemp -d)
      # pip and python in $PATH is needed for the test suite to pass fully
      PATH=${python.withPackages (p: [ p.numba p.pip ])}/bin:$PATH
      HOME=$PWD python -m numba.runtests -m $NIX_BUILD_CORES
      popd
      touch $out # stop Nix from complaining no output was generated and failing the build
    '';
  };

  meta =  with lib; {
    description = "Compiling Python code using LLVM";
    homepage = "https://numba.pydata.org/";