diff --git a/buildscripts/condarecipe.local/meta.yaml b/buildscripts/condarecipe.local/meta.yaml index f4cfd307f2c..1a7a5de982d 100644 --- a/buildscripts/condarecipe.local/meta.yaml +++ b/buildscripts/condarecipe.local/meta.yaml @@ -18,7 +18,7 @@ build: - lib/libiomp5.dylib # [osx] ignore_run_exports: # tbb-devel triggers hard dependency on tbb, this is not the case. - - tbb # [not (aarch64 or ppc64le or win32)] + - tbb # [not (aarch64 or ppc64le)] requirements: # build and run dependencies are duplicated to avoid setuptools issues @@ -36,9 +36,8 @@ requirements: # On channel https://anaconda.org/numba/ - llvmlite >=0.41.0dev0,<0.41 # TBB devel version is to match TBB libs. - # NOTE: ppc64le and aarch64 are pending testing so excluded for now, win32 - # is not a supported parallel target. - - tbb-devel >=2021.6 # [not (aarch64 or ppc64le or win32)] + # NOTE: ppc64le and aarch64 are pending testing so excluded for now. + - tbb-devel >=2021.6 # [not (aarch64 or ppc64le)] run: - python >=3.8 # NumPy 1.22.0, 1.22.1, 1.22.2 are all broken for ufuncs, see #7756 @@ -48,7 +47,7 @@ requirements: - llvmlite >=0.41.0dev0,<0.41 run_constrained: # If TBB is present it must be at least version 2021.6 - - tbb >=2021.6 # [not (aarch64 or ppc64le or win32)] + - tbb >=2021.6 # [not (aarch64 or ppc64le)] # avoid confusion from openblas bugs - libopenblas !=0.3.6 # [x86_64] # 0.3.17 buggy on M1 silicon @@ -73,7 +72,7 @@ test: - ipython # [not aarch64] # for pycc - setuptools - - tbb >=2021.6 # [not (aarch64 or ppc64le or win32)] + - tbb >=2021.6 # [not (aarch64 or ppc64le)] - llvm-openmp # [osx] # This is for driving gdb tests - pexpect # [linux64] diff --git a/buildscripts/condarecipe.local/run_test.bat b/buildscripts/condarecipe.local/run_test.bat index a62aac84571..a1b3ef8ad65 100644 --- a/buildscripts/condarecipe.local/run_test.bat +++ b/buildscripts/condarecipe.local/run_test.bat @@ -3,11 +3,6 @@ set NUMBA_DISABLE_ERROR_MESSAGE_HIGHLIGHTING=1 set NUMBA_CAPTURED_ERRORS=new_style set PYTHONFAULTHANDLER=1 -@rem no parallel target support for 32 bit windows and no TBB packages -if "%ARCH%"=="32" ( - set NUMBA_DISABLE_TBB=1 -) - @rem Check Numba executable is there numba -h diff --git a/docs/source/reference/envvars.rst b/docs/source/reference/envvars.rst index eb606ff2a82..5620559afea 100644 --- a/docs/source/reference/envvars.rst +++ b/docs/source/reference/envvars.rst @@ -316,7 +316,7 @@ Compilation options If set to non-zero, enable LLVM loop vectorization. - *Default value:* 1 (except on 32-bit Windows) + *Default value:* 1 .. envvar:: NUMBA_SLP_VECTORIZE diff --git a/docs/source/reference/numpysupported.rst b/docs/source/reference/numpysupported.rst index 6645a827be3..0397ba19d07 100644 --- a/docs/source/reference/numpysupported.rst +++ b/docs/source/reference/numpysupported.rst @@ -976,7 +976,7 @@ Floating functions copysign Yes Yes nextafter Yes Yes modf Yes No - ldexp Yes (*) Yes + ldexp Yes Yes frexp Yes No floor Yes Yes ceil Yes Yes @@ -984,8 +984,6 @@ Floating functions spacing Yes Yes ============== ============= =============== -(\*) not supported on windows 32 bit - Datetime functions ------------------ diff --git a/docs/source/user/5minguide.rst b/docs/source/user/5minguide.rst index e2ce1ec4f63..9c96d81ccd4 100644 --- a/docs/source/user/5minguide.rst +++ b/docs/source/user/5minguide.rst @@ -12,7 +12,7 @@ part of your code can subsequently run at native machine code speed! Out of the box Numba works with the following: -* OS: Windows (32 and 64 bit), OSX, Linux (64 bit). Unofficial support on +* OS: Windows (64 bit), OSX, Linux (64 bit). Unofficial support on \*BSD. * Architecture: x86, x86_64, ppc64le, armv8l (aarch64), M1/Arm64. * GPUs: Nvidia CUDA. diff --git a/docs/source/user/installing.rst b/docs/source/user/installing.rst index 5d0201f6581..a87a84bd7b8 100644 --- a/docs/source/user/installing.rst +++ b/docs/source/user/installing.rst @@ -12,7 +12,7 @@ Our supported platforms are: * Linux x86_64 * Linux ppcle64 (POWER8, POWER9) -* Windows 7 and later (32-bit and 64-bit) +* Windows 10 and later (64-bit) * OS X 10.9 and later (64-bit and unofficial support on M1/Arm64) * \*BSD (unofficial support only) * NVIDIA GPUs of compute capability 5.0 and later diff --git a/docs/upcoming_changes/9083.highlight.rst b/docs/upcoming_changes/9083.highlight.rst new file mode 100644 index 00000000000..128cf281e05 --- /dev/null +++ b/docs/upcoming_changes/9083.highlight.rst @@ -0,0 +1,5 @@ +Removal of Windows 32-bit Support +================================= + +This release onwards, Numba has discontinued support for Windows 32-bit +operating systems. diff --git a/numba/core/config.py b/numba/core/config.py index c2edf63984d..e128074a9c8 100644 --- a/numba/core/config.py +++ b/numba/core/config.py @@ -346,9 +346,7 @@ def optional_str(x): DUMP_OPTIMIZED = _readenv("NUMBA_DUMP_OPTIMIZED", int, DEBUG) # Force disable loop vectorize - # Loop vectorizer is disabled on 32-bit win32 due to a bug (#649) - LOOP_VECTORIZE = _readenv("NUMBA_LOOP_VECTORIZE", int, - not (IS_WIN32 and IS_32BITS)) + LOOP_VECTORIZE = _readenv("NUMBA_LOOP_VECTORIZE", int, 1) # Enable superword-level parallelism vectorization, default is off # since #8705 (miscompilation). diff --git a/numba/tests/test_function_type.py b/numba/tests/test_function_type.py index d4b74d2eece..90cba1bb7a8 100644 --- a/numba/tests/test_function_type.py +++ b/numba/tests/test_function_type.py @@ -2,7 +2,7 @@ import types as pytypes from numba import jit, njit, cfunc, types, int64, float64, float32, errors from numba import literal_unroll -from numba.core.config import IS_32BITS, IS_WIN32 +from numba.core.config import IS_WIN32 import ctypes import warnings @@ -584,26 +584,13 @@ def __init__(self, fname): self._name = fname if fname == 'cos': # test for double-precision math function - if IS_WIN32 and IS_32BITS: - # 32-bit Windows math library does not provide - # a double-precision cos function, so - # disabling the function - addr = None - signature = None - else: - addr = ctypes.cast(self.lib.cos, ctypes.c_voidp).value - signature = float64(float64) + addr = ctypes.cast(self.lib.cos, ctypes.c_voidp).value + signature = float64(float64) elif fname == 'sinf': # test for single-precision math function - if IS_WIN32 and IS_32BITS: - # 32-bit Windows math library provides sin - # (instead of sinf) that is a single-precision - # sin function - addr = ctypes.cast(self.lib.sin, ctypes.c_voidp).value - else: - # Other 32/64 bit platforms define sinf as the - # single-precision sin function - addr = ctypes.cast(self.lib.sinf, ctypes.c_voidp).value + # Other 32/64 bit platforms define sinf as the + # single-precision sin function + addr = ctypes.cast(self.lib.sinf, ctypes.c_voidp).value signature = float32(float32) else: raise NotImplementedError(