Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
dc00a7f9ef | ||
|
064151361c | ||
|
ae2cda16d2 | ||
|
0e67324ae6 | ||
|
76ad2a4ef1 | ||
|
c4d26caeaf | ||
|
e240bc6e8a | ||
|
7a458a5150 | ||
|
d02751bf3b | ||
|
d12f3380c4 | ||
|
c02f637a80 | ||
|
65cb17befd | ||
|
10973cf706 | ||
|
70daebcefd | ||
|
7771b77dc9 | ||
|
ae5f05be70 | ||
|
b94607ebe3 | ||
|
989387bde6 | ||
|
40c13fc13f | ||
|
e6b8f6848a | ||
|
3dd8fdb83e | ||
|
491fb84a1a |
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,6 @@
|
||||
/llvmlite-0.37.0.tar.gz
|
||||
/llvmlite-0.39.1.tar.gz
|
||||
/llvmlite-0.40.0.tar.gz
|
||||
/llvmlite-0.40.1.tar.gz
|
||||
/llvmlite-0.41.0.tar.gz
|
||||
/llvmlite-0.41.1.tar.gz
|
||||
|
@ -1,58 +0,0 @@
|
||||
From 4ad14e2911329832c3fa9025a2fadc921f5bedd8 Mon Sep 17 00:00:00 2001
|
||||
From: Andre Masella <andre@masella.name>
|
||||
Date: Tue, 14 Mar 2023 14:55:40 -0400
|
||||
Subject: [PATCH] Remove maximum Python version limit
|
||||
|
||||
Allow any new version of Python for llvmlite. Closes #912
|
||||
---
|
||||
azure-pipelines.yml | 4 ++++
|
||||
setup.py | 8 +++-----
|
||||
2 files changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
|
||||
index 0b14f97..759187a 100644
|
||||
--- a/azure-pipelines.yml
|
||||
+++ b/azure-pipelines.yml
|
||||
@@ -38,6 +38,10 @@ jobs:
|
||||
PYTHON: '3.10'
|
||||
CONDA_ENV: cienv
|
||||
RUN_FLAKE8: yes
|
||||
+ py311:
|
||||
+ PYTHON: '3.11'
|
||||
+ CONDA_ENV: cienv
|
||||
+ RUN_FLAKE8: yes
|
||||
RUN_CLANG_FORMAT: yes
|
||||
# temporarily disabled
|
||||
# pypy:
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 02b1604..2a546e6 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -33,7 +33,6 @@ except ImportError:
|
||||
|
||||
|
||||
min_python_version = "3.7"
|
||||
-max_python_version = "3.11" # exclusive
|
||||
|
||||
|
||||
def _guard_py_ver():
|
||||
@@ -43,13 +42,12 @@ def _guard_py_ver():
|
||||
parse = _version_module.parse
|
||||
|
||||
min_py = parse(min_python_version)
|
||||
- max_py = parse(max_python_version)
|
||||
cur_py = parse('.'.join(map(str, sys.version_info[:3])))
|
||||
|
||||
- if not min_py <= cur_py < max_py:
|
||||
- msg = ('Cannot install on Python version {}; only versions >={},<{} '
|
||||
+ if not min_py <= cur_py:
|
||||
+ msg = ('Cannot install on Python version {}; only versions >={} '
|
||||
'are supported.')
|
||||
- raise RuntimeError(msg.format(cur_py, min_py, max_py))
|
||||
+ raise RuntimeError(msg.format(cur_py, min_py))
|
||||
|
||||
|
||||
_guard_py_ver()
|
||||
--
|
||||
2.39.2
|
||||
|
@ -1,19 +1,15 @@
|
||||
%bcond_without tests
|
||||
%bcond tests 1
|
||||
# Sphinx-generated HTML documentation is not suitable for packaging; see
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion.
|
||||
#
|
||||
# We can generate PDF documentation as a substitute.
|
||||
%bcond_without doc_pdf
|
||||
|
||||
%global forgeurl https://github.com/numba/llvmlite
|
||||
%bcond doc_pdf 1
|
||||
|
||||
Name: python-llvmlite
|
||||
Version: 0.39.1
|
||||
Version: 0.41.1
|
||||
Release: %{autorelease}
|
||||
Summary: Lightweight LLVM Python binding for writing JIT compilers
|
||||
|
||||
%forgemeta
|
||||
|
||||
# The entire source is BSD-2-Clause, except:
|
||||
# - The bundled versioneer.py, and the _version.py it generates (which is
|
||||
# packaged) is LicenseRef-Fedora-Public-Domain. In later versions of
|
||||
@ -31,51 +27,24 @@ Summary: Lightweight LLVM Python binding for writing JIT compilers
|
||||
License: BSD-2-Clause AND LicenseRef-Fedora-Public-Domain
|
||||
|
||||
URL: http://llvmlite.pydata.org/
|
||||
Source0: %{forgesource}
|
||||
|
||||
# Backport upstream commit:
|
||||
# Remove maximum Python version limit
|
||||
#
|
||||
# Allow any new version of Python for llvmlite. Closes #912
|
||||
# https://github.com/numba/llvmlite/commit/9ea5668fff6d0e4099d7907aafae40df5b4c8655
|
||||
# Fixes:
|
||||
# “Escape hatch” for maximum Python version check
|
||||
# https://github.com/numba/llvmlite/issues/912
|
||||
# See also:
|
||||
# python 3.10 support
|
||||
# https://github.com/numba/llvmlite/issues/740
|
||||
# To be released in 0.40.0 and 0.41.0. Cherry-picked onto tag v0.39.1:
|
||||
Patch: 0001-Remove-maximum-Python-version-limit.patch
|
||||
%global forgeurl https://github.com/numba/llvmlite
|
||||
Source: %{forgeurl}/archive/v%{version}/llvmlite-%{version}.tar.gz
|
||||
|
||||
BuildRequires: python3-devel
|
||||
|
||||
# 0.39.1 only supports llvm11
|
||||
BuildRequires: llvm11-devel
|
||||
# 0.41.0 only supports llvm14
|
||||
BuildRequires: llvm14-devel
|
||||
BuildRequires: gcc-c++
|
||||
|
||||
%global _description %{expand:
|
||||
llvmlite provides a Python binding to LLVM for use in Numba.
|
||||
|
||||
Numba previously relied on llvmpy. While llvmpy exposed large parts of the
|
||||
LLVM C++ API for direct calls into the LLVM library, llvmlite takes an entirely
|
||||
different approach. Llvmlite starts from the needs of a JIT compiler and splits
|
||||
them into two decoupled tasks:
|
||||
|
||||
- Construction of a Module, function by function, Instruction by instruction.
|
||||
- Compilation and optimization of the module into machine code.
|
||||
|
||||
The construction of an LLVM module does not call the LLVM C++ API. Rather, it
|
||||
constructs the LLVM intermediate representation (IR) in pure Python. This is
|
||||
the role of the IR layer.
|
||||
|
||||
The compilation of an LLVM module takes the IR in textual form and feeds it
|
||||
into LLVM's parsing API. It then returns a thin wrapper around LLVM's C++
|
||||
module object. This is the role of the binding layer.
|
||||
|
||||
Once parsed, the module's source code cannot be modified, which loses the
|
||||
flexibility of the direct mapping of C++ APIs into Python that was provided by
|
||||
llvmpy but saves a great deal of maintenance.}
|
||||
llvmlite is a project originally tailored for Numba‘s needs, using the
|
||||
following approach:
|
||||
|
||||
• A small C wrapper around the parts of the LLVM C++ API we need that are not
|
||||
already exposed by the LLVM C API.
|
||||
• A ctypes Python wrapper around the C API.
|
||||
• A pure Python implementation of the subset of the LLVM IR builder that we
|
||||
need for Numba.}
|
||||
|
||||
%description %_description
|
||||
|
||||
@ -100,7 +69,7 @@ BuildRequires: python3dist(sphinx-rtd-theme)
|
||||
Documentation for %{name}.
|
||||
|
||||
%prep
|
||||
%forgeautosetup -p1
|
||||
%autosetup -n llvmlite-%{version} -p1
|
||||
|
||||
# increase verbosity of tests to 2
|
||||
sed -i 's/\(def run_tests.*verbosity=\)1/\12/' llvmlite/tests/__init__.py
|
||||
@ -116,7 +85,7 @@ echo 'intersphinx_mapping.clear()' >> docs/source/conf.py
|
||||
%pyproject_buildrequires
|
||||
|
||||
%build
|
||||
export LLVM_CONFIG="%{_libdir}/llvm11/bin/llvm-config"
|
||||
export LLVM_CONFIG="%{_libdir}/llvm14/bin/llvm-config"
|
||||
%pyproject_wheel
|
||||
|
||||
%if %{with doc_pdf}
|
||||
@ -130,7 +99,7 @@ export LLVM_CONFIG="%{_libdir}/llvm11/bin/llvm-config"
|
||||
|
||||
%check
|
||||
%if %{with tests}
|
||||
PYTHONPATH='%{buildroot}%{python3_sitearch}' %{python3} runtests.py
|
||||
%{py3_test_envvars} %{python3} runtests.py
|
||||
%endif
|
||||
|
||||
%files -n python3-llvmlite -f %{pyproject_files}
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (llvmlite-0.39.1.tar.gz) = 16b341300e4034aff4ce9553fec6b5923b9f4cb261c1ec0ee2cef6d87addcbebe8f4805dbc2fb30f357800fa029c3b6fc8ed62a5fdaad7c262e723c3b9c4ad32
|
||||
SHA512 (llvmlite-0.41.1.tar.gz) = 97ba6c97837ee2f4bd29d97fa3992dc2d316cac8aa8aee5dd653fa5b4261987613c83997a4d94d10eb5009c6976e202fd13ab37208b5fc1f4a6e6288d608b901
|
||||
|
Loading…
Reference in New Issue
Block a user