What is PyPy?

Historically, PyPy has been used to mean two things. The first is theRPython translation toolchain for generatinginterpreters for dynamic programming languages. And the second is oneparticular implementation of Python produced with it. Because RPythonuses the same syntax as Python, this generated version became known asPython interpreter written in Python. It is designed to be flexible andeasy to experiment with.

To make it more clear, we start with source code written in RPython,apply the RPython translation toolchain, and end up with PyPy as abinary executable. This executable is the Python interpreter.

Double usage has proven to be confusing, so we’ve moved away from usingthe word PyPy to mean both toolchain and generated interpreter. Now weuse word PyPy to refer to the Python implementation, and explicitlymentionRPython translation toolchain when we mean the framework.

Some older documents, presentations, papers and videos will still have the oldusage. You are hereby warned.

We target a large variety of platforms, small and large, by providing acompiler toolsuite that can produce custom Python versions. Platform, memoryand threading models, as well as the JIT compiler itself, are aspects of thetranslation process - as opposed to encoding low level details into thelanguage implementation itself.

For more details, have a look at our architecture overview.