Use a simpler description from the upstream README.rst

This commit is contained in:
Benjamin A. Beasley 2023-05-03 20:16:20 -04:00
parent c02f637a80
commit d12f3380c4

View File

@ -51,28 +51,14 @@ BuildRequires: llvm11-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 Numbas 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