└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # JIT Graveyard 2 | A list of dead JIT compiler projects for CPython. 3 | 4 | > Those who fail to learn from history are doomed to repeat it. 5 | 6 | Sir Winston Churchill 7 | 8 | ### Psyco 9 | 10 | An importable extension module that enabled some form of JIT of the eval loop calling 11 | CPython APIs. From the y2k Python 2.0 era. 32-bit x86 only. Python <= 2.6 only. 12 | 13 | http://psyco.sourceforge.net/ _(yes, `http` without an `s` - "it's the 90s")_ 14 | 15 | The authors moved over to PyPy. 16 | 17 | ### Unladen Swallow 18 | 19 | Aimed to use LLVM to build a method-at-a-time JIT for CPython 2.6 20 | 21 | https://code.google.com/archive/p/unladen-swallow/ 22 | 23 | The `--with-computed-gotos` performance boost came from the initial pre-llvm Unladen Swallow work. 24 | 25 | ### Pyston version 1 26 | 27 | Aimed to use LLVM to build a method-at-a-time JIT for CPython 2.6 (spot the similarity with Unladen Swallow) 28 | *and* re-implement the rest of the VM in C++. 29 | 30 | https://github.com/pyston/pyston_v1/tree/v1.0 31 | 32 | Note Pyston version 2 is a different project and still alive 33 | https://github.com/pyston/pyston 34 | 35 | ### Skybison 36 | 37 | Originally called Pyro, this was Instagram (now Meta)'s attempt at repeating history. 38 | 39 | Re-implemented the VM in C++, including an interpreter written in assembly. 40 | 41 | https://github.com/facebookexperimental/skybison 42 | 43 | ### S6 44 | 45 | 2022's addition to the Graveyard. From an Alphabet research subsidary. 46 | 47 | https://github.com/deepmind/s6 48 | 49 | 50 | --------------------------------------------------------------------------------