TUNES Update

Armin Rigo arigo at tunes.org
Thu Mar 22 07:24:23 PDT 2007


Hi Tom,

On Tue, Mar 20, 2007 at 08:42:05AM -0400, Tom Novelli wrote:
> I understand the fast/fallback approach... As for PyPy, the FAQ needs
> work... let's see if I understand: You're profiling and JIT-compiling
> the hot spots... The profiler tracks data types, and you just compile
> native code for whatever types happen to be used most.  And this was a
> new approach when you did it with Psyco, made possible by efficient
> profiling techniques.  Correct?

I'm aware that it's quite undocumented yet for PyPy (we need to write a
technical report within a month).  No, that's not how it works; my point
is that there is no Python-specific profiling code tracking the Python
types and producing corresponding native code.  The technique is
language-independent.  I'm still not managing to summarize it concisely,
though :-(  I can only refer to the paper and slides for Psyco at
http://psyco.sourceforge.net/doc.html ("How does it work?" section).

PyPy itself contains a generator that produces a JIT compiler in the
style of Psyco, automatically, from a Python interpreter (which plays
the role of a formal language specification in this context).  In other
words, just tweak the interpreter or replace it with an interpreter for
whatever other dynamic language you like and you get a JIT compiler for
free.  (Somebody is busy writing a JavaScript interpreter in our
framework, for example.)


A bientot,

Armin.



More information about the TUNES mailing list