Table of Contents for Programming Languages: a survey


The PyPy? project has two goals (1) a reimplementation of Python in RPython, (2) to be a generic toolkit for programming language implementation based on RPython. This section is only about (2). For (1), see Implementation Case Studies. For RPython considered as a language in itself, see RPython.

RPython is a restricted subset of Python, with restrictions on dynamic typing, reflection, and metaprogramming to enable type inference at compile time.

PyPy? is also a compiler for RPython, which adds in JIT analysis. The RPython compiler is written in Python.

Then the PyPy? Python interpreter is written in a mixture of Python (for slow initialization) and RPython (for the fast part) (i think?). This way the JIT analysis is applied to the result. I think? Not sure I understand.

I think it provides an extension API called CPyExt?, not sure though (later: now i hear that Cffi is what's recommended).




" masklinn 5 hours ago


The GIL is in PyPy?, not in RPython, nothing precludes writing a GIL-less RPython-based VM.

However RPython is not thread-safe and the GC it provides is not thread-aware, so you'd have to provide your own thread-aware GC (or a big GC lock) " --