aboutsummaryrefslogtreecommitdiff
path: root/devel/py-llvmlite/pkg-descr
blob: 8631e33cf5584fc7a4516cd01c2e5d9efe498230 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
A lightweight LLVM python binding for writing JIT compilers

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.