[Bug 2003287] New: Review Request: python-llvmlite - A lightweight LLVM python binding for writing JIT compilers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=2003287

            Bug ID: 2003287
           Summary: Review Request: python-llvmlite - A lightweight LLVM
                    python binding for writing JIT compilers
           Product: Fedora
           Version: rawhide
          Hardware: All
                OS: Linux
            Status: NEW
         Component: Package Review
          Severity: medium
          Priority: medium
          Assignee: nobody@xxxxxxxxxxxxxxxxx
          Reporter: sanjay.ankur@xxxxxxxxx
        QA Contact: extras-qa@xxxxxxxxxxxxxxxxx
                CC: package-review@xxxxxxxxxxxxxxxxxxxxxxx
  Target Milestone: ---
    Classification: Fedora



Spec URL:
https://ankursinha.fedorapeople.org/python-llvmlite/python-llvmlite.spec

SRPM URL:
https://ankursinha.fedorapeople.org/python-llvmlite/python-llvmlite-0.37.0-1.fc34.src.rpm

Description:
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.

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 thanks to a much simpler architeture
  (the Numba test suite is twice faster than it was).

Fedora Account System Username: ankursinha


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux