- 1997-1999 Python2C
- 2002-2011 Psyco, https://bitbucket.org/arigo/psyco
- Was actually used in production for many projects
- 2002-2010 Pyrex
- Served as a base for Cython
- 2003, active PyPy
- 2006 Grant Olson's Compyler
- 2006, active Cython
- Originally based on Pyrex
- 2008, active Shedskin
- 2009-2010 Unladen Swallow
- 2011, active Nuitka
- 2011-2013 [Copperhead]https://github.com/bryancatanzaro/copperhead) - "Data Parallel Python"
- 2010-2011 HotPy
- 2012-2012 HotPy2
- 2012-2012 pymothoa
- 2012-2013 Parakeet
- 2012, active Numba
- Well-known and actively used, 4.8K github stars, 16K commits
- 2012, active Pythran
- docs
- 2019-01-24 Pythran: Python at C++ speed !
- 2012-2018 reticulated
- 2013-2014 flypy, was once named "numba2" then apparently transforned into pykit
- 2014-2017 https://github.com/darius/tailbiter - Simple teaching metacircular bytecode compiler
- Originally for book "500 Lines or Less" (didn't fit)
- 2014-02-24 http://abecedarius.tumblr.com/post/77679122389/ouroborospy
- 2014-03-17 http://abecedarius.tumblr.com/post/79850464139/tail-eaten-well-almost
- 2017-02 Dragon taming with Tailbiter, a bytecode compiler for Python -
- 2014-2017 Pyston
- 2014-04-03 Announcement
- 2017-01-31 Postmortem
- 2014-2016 HOPE - "JIT compiler for astrophysical computations"
- 2015-2015 https://github.com/lukasmartinelli/py14 - Python to C++ 14 transpiler
- 2015-2019 numpile - A tiny 1000 line LLVM-based numeric specializer for scientific Python code
- 2015-2016 FAT Python
- 2015, active Pyjion (originally
microsoft/Pyjion
) - A JIT for Python based upon CoreCLR - 2016-2018 Lichen - Explicitly a subset of Python with purposely differing semantics
- 2017, active mypyc/mypy - Python-to-C compiler based on type annotations/inference by mypy type checker. (Later mypyc is merged into mypy codebase).
- 1997-2000 PyFront (afterwards Basil)
- 2000 Basil
- 2002-2003 UCPy compiler + Mamba VM
- 2004-2004 Starkiller
- Faster than C: Static Type Inference with Starkiller
- Master's Thesis
- Shedskin seems to be based on similar ideas and provides concrete deliverables
- 1998-11 7th International Python Conference
- From Jon Riehl's notes:
Last year (IPC7,) I thought I was going to surprise the Python community by presenting a prototype Python to C translator. Little did I know, I was only one of three people who announced such a product.
- These apparently were:
- "Converting Python Virtual Machine Code to C", John Aycock
- "PyFront: Conversion of Python to C Extension Modules", Jon Riehl
- (3rd - ???)
- 2000-01 8th International Python Conference
- From Jon Riehl's notes:
This year (IPC8,) in the interest of keeping people up to date, there was a two hour session that hosted the developers of these prototypes. The only system left standing is now complete and under beta test. Bill Tutt and Greg Stein cowrote Python2C, which they have been continuing to work on at (http://www.mudlib.org/~rassilon/p2c/). The other player is John Aycock. John declared he would look into run time type instrumentation, which I think should end up forming some sort of a JIT for Python. He lives at: (http://gulf.uvic.ca/~aycock/)
- 2000 Compiler-SIG
- "This SIG grew out of a Developers' Day session at the 8th International Python Conference. Ka-Ping Yee took notes on the session."
- 2016-07-11 Python Compilers Workshop at SciPy 2016 conference.
-
PEP 267, 2001-05, Py2.2: Optimized Access to Module Namespaces
-
PEP 266, 2001-08, Py2.3: Optimizing Global Variable/Attribute Access
-
PEP 280, 2002-02, Py2.3: Optimizing access to globals
-
PEP 329, 2004-04, Py2.4: Treating Builtins as Constants in the Standard Library
-
PEP 510, 2016-01, Py3.6: Specialize functions with guards
-
PEP 511, 2016-01, Py3.6: API for code transformers
- https://github.com/sdiehl/subpy - Subpy is a library for defining subsets of the Python language and querying ASTs for language-level properties that are specified as sets of features.
- https://github.com/python/typed_ast - Modified fork of CPython's ast module
that parses
# type:
comments. - https://github.com/m-labs/pythonparser - "Parses source code into an AST that is a superset of Python’s built-in ast module".
- https://github.com/lark-parser/lark/blob/master/examples/python3.lark - Python3 grammar for Lark parser.
- 2013-07-26 The obvious Python parser - Constructing Python3 parser. In Haskell, d'oh. Code: https://github.com/hausdorff/pyli
This list is compiled and maintained by Paul Sokolovsky, and released under Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0).