[pypy-dev] Could someone give me an idea of what is where with RPython?

Alexander Golec alexgolecmailinglists at gmail.com
Fri Dec 9 23:36:13 CET 2011


Hi Armin,

Thanks for the answer, but I'm having a hard time wrapping my head around this. I'm reading about object spaces, and I keep wondering how do the object spaces find their way into the CPython interpreter. In other words, since there is an element of partial initialization to the translation process, what performs the initialization, and how does the initialized product find its way into the translator?

My current understanding is:

 - Interpret PyPy on top of CPython
 - The interpreted PyPy performs partial interpretation of its own source code until it reaches the RPython entry point
 - From that point forward, the code are handled by the flow object space to produce code objects.
 - The annotator runs and translation happens

Is this correct? I've been spending my entire semester trying to grasp this, but I can't seem to get the totality of it into my head. 

Alex


On Dec 9, 2011, at 5:29 PM, Armin Rigo wrote:

> Hi Alexander,
> 
> The RPython toolchain is meant to be useful essentially for people
> that want to implement an interpreter for a dynamic language, or that
> want to hack at PyPy itself.  If you're not in either category, you
> probably only want to use the "pypy" executable, in the same way as
> you use the "python" executable from CPython.
> 
> To answer your first question: the RPython toolchain is not written in
> RPython, but in normal Python.  We only run it once, in order to build
> the "pypy" executable --- similar to how the "python" executable is
> built once using a C compiler like gcc.  (As the RPython translation
> is written in normal Python code, it runs with either "python" or a
> previous version of the "pypy" executable; nowadays we tend to use
> pypy for that because it is faster, but the result is the same.)
> 
> (Did this help, or did I miss the point of your questions?... if so, I'm sorry)
> 
> 
> A bientôt,
> 
> Armin.



More information about the pypy-dev mailing list