388f26f510
llvmlite provides a Python binding to LLVM for use in Numba. The old llvmpy binding exposes a lot of LLVM APIs but the mapping of C++-style memory management to Python is error prone. Numba and many JIT compilers do not need a full LLVM API. Only the IR builder, optimizer, and JIT compiler APIs are necessary. 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. Packaged by Kamil Rytarowski for pkgsrc-wip and updated by me.
15 lines
658 B
Text
15 lines
658 B
Text
llvmlite provides a Python binding to LLVM for use in Numba.
|
|
|
|
The old llvmpy binding exposes a lot of LLVM APIs but the mapping of
|
|
C++-style memory management to Python is error prone. Numba and many
|
|
JIT compilers do not need a full LLVM API. Only the IR builder,
|
|
optimizer, and JIT compiler APIs are necessary.
|
|
|
|
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.
|