loongson/pypi/: llvmlite-0.30.0 metadata and description

Homepage Simple index Newer version available

lightweight wrapper around basic LLVM functionality

author Continuum Analytics, Inc.
author_email numba-users@continuum.io
classifiers
  • Development Status :: 4 - Beta
  • Intended Audience :: Developers
  • Operating System :: OS Independent
  • Programming Language :: Python
  • Programming Language :: Python :: 2.7
  • Programming Language :: Python :: 3.4
  • Programming Language :: Python :: 3.5
  • Topic :: Software Development :: Code Generators
  • Topic :: Software Development :: Compilers
download_url https://github.com/numba/llvmlite
license BSD
platform
  • UNKNOWN
requires_dist
  • enum34 ; python_version < "3.4"

Because this project isn't in the mirror_whitelist, no releases from root/pypi are included.

File Tox results History
llvmlite-0.30.0-cp36-cp36m-linux_loongarch64.whl
Size
1 MB
Type
Python Wheel
Python
3.6
llvmlite-0.30.0.tar.gz
Size
80 KB
Type
Source
Travis CI Code Climate Coveralls.io Readthedocs.io

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:

Key Benefits

  • The IR builder is pure Python code and decoupled from LLVM’s frequently-changing C++ APIs.
  • Materializing a LLVM module calls LLVM’s IR parser which provides better error messages than step-by-step IR building through the C++ API (no more segfaults or process aborts).
  • Most of llvmlite uses the LLVM C API which is small but very stable (low maintenance when changing LLVM version).
  • The binding is not a Python C-extension, but a plain DLL accessed using ctypes (no need to wrestle with Python’s compiler requirements and C++ 11 compatibility).
  • The Python binding layer has sane memory management.
  • llvmlite is quite faster than llvmpy’s thanks to a much simpler architeture (the Numba test suite is twice faster than it was).

llvmpy Compatibility Layer

The llvmlite.llvmpy namespace provides a minimal llvmpy compatibility layer.

Compatibility

llvmlite works with Python 2.7 and Python 3.4 or greater.

As of version 0.29.0, llvmlite requires LLVM 7.0.x or later

Historical compatibility table:

llvmlite versions compatible LLVM versions
0.29.0 - … 7.0.x, 7.1.x, 8.0.x
0.27.0 - 0.28.0 7.0.x
0.23.0 - 0.26.0 6.0.x
0.21.0 - 0.22.0 5.0.x
0.17.0 - 0.20.0 4.0.x
0.16.0 - 0.17.0 3.9.x
0.13.0 - 0.15.0 3.8.x
0.9.0 - 0.12.1 3.7.x
0.6.0 - 0.8.0 3.6.x
0.1.0 - 0.5.1 3.5.x

Documentation

You’ll find the documentation at http://llvmlite.pydata.org

Pre-built binaries

We recommend you use the binaries provided by the Numba team for the Conda package manager. You can find them in Numba’s anaconda.org channel. For example:

$ conda install --channel=numba llvmlite

(or, simply, the official llvmlite package provided in the Anaconda distribution)

Other build methods

If you don’t want to use our pre-built packages, you can compile and install llvmlite yourself. The documentation will teach you how: http://llvmlite.pydata.org/en/latest/install/index.html