# Python LLVM

**URL:** <https://ifnotnil.com/t/python-llvm/1971>\
**Category:** Python\
**Created:** [6 August 2021 17:43 UTC](https://ifnotnil.com/t/python-llvm/1971 "2021-08-06T17:43:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Joseph](https://ifnotnil.com/user_avatar/ifnotnil.com/joseph/32/898_2.png) [@Joseph](https://ifnotnil.com/u/Joseph)\
**Post date:** [6 August 2021 17:43 UTC](https://ifnotnil.com/t/python-llvm/1971/1 "2021-08-06T17:43:35Z")

</div>

I was mildly curious whether anyone has ever attempted to create an llvm compiler for python. This sort of thing is way above my pay grade and I suspect there’s an issue with dynamic typing (although I’ve heard tell of a static type checker for python).

At any rate, I came across this page. Anyone want to dive in and make one for me? Jk. But thought it was worthy of sharing.

[Let’s write an LLVM…](http://dev.stephendiehl.com/numpile/)

---

<div class="post-metadata">

**Author:** ![Garry](https://ifnotnil.com/user_avatar/ifnotnil.com/garry/32/2_2.png) [@Garry](https://ifnotnil.com/u/Garry)\
**Post date:** [7 August 2021 17:46 UTC](https://ifnotnil.com/t/python-llvm/1971/2 "2021-08-07T17:46:15Z")

</div>

Anything is possible but compiling dynamically typed languages are more challenging than statically typed ones. [Crystal](https://crystal-lang.org/) is an example (an ahead of time Ruby compiler).

---

<div class="post-metadata">

**Author:** ![SteveW](https://ifnotnil.com/letter_avatar_proxy/v4/letter/s/f05b48/32.png) [@SteveW](https://ifnotnil.com/u/SteveW)\
**Post date:** [9 August 2021 11:07 UTC](https://ifnotnil.com/t/python-llvm/1971/3 "2021-08-09T11:07:57Z")

</div>

The developers of PureBasic initially set out to target LLVM with their new compiler but after experimenting with it they decided to change direction and output C code instead. You can read their blog post on the subject [here](https://www.purebasic.fr/blog/?p=480)

This is what Nuitka does with Python code. Nuitka’s overview (including plans for type inferencing and/or hints) is [here](https://nuitka.net/pages/overview.html)
