How pypy/pypy works
PyPy is a Python-language interpreter implemented in Python and built on the RPython compiler framework. The primary runtime path starts in the interpreter entry module and creates the standard object space used to execute Python. The repository also includes RPython’s annotation, low-level representation, and JIT backend layers, plus a broad Python 2.7 standard-library implementation. The graph reflects documented product scope and indexed imports; source excerpts are partial, so connections between unsampled compiler stages are omitted.
Main entry points: main.py Interpreter Entry · model.py Type Annotation · lltype.py Low-Level Types · rawstorage.py Raw Storage
Components 23
Python Runtime
- Interpreter Entry
pypy/interpreter/main.py - Interpreter Evaluation
pypy/interpreter/eval.py - Module Handling
pypy/interpreter/module.py - Interpreter Errors
pypy/interpreter/error.py - Standard Object Space
pypy/objspace/std/objspace.py - Method Calls
pypy/objspace/std/callmethod.py - Sys Services
pypy/module/sys/app.py
Python Library
- Future Features
lib-python/2.7/__future__.py - OS Interface
lib-python/2.7/os.py - Container Types
lib-python/2.7/collections.py - Threading
lib-python/2.7/threading.py
RPython Framework
- Type Annotation
rpython/annotator/model.py - RPython Object Model
rpython/rlib/objectmodel.py - Annotation Helpers
rpython/rlib/types.py - Controller Typing
rpython/rtyper/controllerentry.py - Low-Level Types
rpython/rtyper/lltypesystem/lltype.py - Memory Layout
rpython/rtyper/lltypesystem/llmemory.py - Raw Storage
rpython/rlib/rawstorage.py - Flow Analysis
rpython/flowspace/flowcontext.py - C Translation
rpython/translator/c/database.py
JIT Runtime
- JIT Backend
rpython/jit/backend/llsupport/llmodel.py - JIT Log Tools
rpython/tool/jitlogparser/storage.py
Other components
- Python User
Connections 18
- Python User → Interpreter Entry: runs Python
- Interpreter Entry → Interpreter Evaluation: uses evaluation
pypy/interpreter/main.py - Interpreter Entry → Module Handling: uses modules
pypy/interpreter/main.py - Interpreter Entry → Interpreter Errors: uses errors
pypy/interpreter/main.py - Interpreter Entry → Standard Object Space: creates space
pypy/interpreter/main.py - Interpreter Entry → Sys Services: uses sys
pypy/interpreter/main.py - Method Calls → Standard Object Space: uses types
pypy/objspace/std/callmethod.py - Type Annotation → Annotation Helpers: uses annotations
rpython/rlib/types.py - RPython Object Model → Type Annotation: uses annotations
rpython/rlib/objectmodel.py - RPython Object Model → Low-Level Types: uses types
rpython/rlib/objectmodel.py - Controller Typing → Type Annotation: defines annotations
rpython/rtyper/controllerentry.py - Controller Typing → RPython Object Model: uses specialization
rpython/rtyper/controllerentry.py - Memory Layout → Low-Level Types: uses types
rpython/rtyper/lltypesystem/llmemory.py - Raw Storage → Low-Level Types: allocates storage
rpython/rlib/rawstorage.py - Raw Storage → Memory Layout: uses memory
rpython/rlib/rawstorage.py - Raw Storage → Type Annotation: defines annotations
rpython/rlib/rawstorage.py - JIT Backend → Low-Level Types: uses types
rpython/jit/backend/llsupport/llmodel.py - JIT Backend → Memory Layout: uses memory
rpython/jit/backend/llsupport/llmodel.py