(hopefully :-)) tracing JIT (like Mozilla TraceMonkey) up to Nx faster on trivial benchmarks N = 10, 20, 30, 60 depending on the moon phase PyPy evil plan: be consistently faster than CPython in the near future antocuni, cfbolz, pedronis (EuroPython 2009) PyPy: becoming fast June 30 2009 1 / 18
operations, as well as the concrete results Linear Validity ensured by guards Recovering logic in case of guard failure antocuni, cfbolz, pedronis (EuroPython 2009) PyPy: becoming fast June 30 2009 5 / 18
more often Specialized loops are more efficient A trace is super-specialized antocuni, cfbolz, pedronis (EuroPython 2009) PyPy: becoming fast June 30 2009 13 / 18
general trace which is specialized enough to be efficient e.g.: turn Python int into C-level words specialized: it works only with int (and not e.g. float) general: it works with all int :-) antocuni, cfbolz, pedronis (EuroPython 2009) PyPy: becoming fast June 30 2009 14 / 18
The current x86 backend produces suboptimal code but not too bad :-) x86-64: not yet, but relatively low effort super-experimental CLI/.NET backend Contributors welcome :-) antocuni, cfbolz, pedronis (EuroPython 2009) PyPy: becoming fast June 30 2009 16 / 18
compiled by .NET’s own JIT current status: as fast as IronPython on trivial benchmarks will be faster than IP in the future extremely good results in JIT v2 it makes a dynamic toy language: as fast as C# for numerical benchmarks faster than C# for some OO benchmarks antocuni, cfbolz, pedronis (EuroPython 2009) PyPy: becoming fast June 30 2009 17 / 18
compiled by .NET’s own JIT current status: as fast as IronPython on trivial benchmarks will be faster than IP in the future extremely good results in JIT v2 it makes a dynamic toy language: as fast as C# for numerical benchmarks faster than C# for some OO benchmarks antocuni, cfbolz, pedronis (EuroPython 2009) PyPy: becoming fast June 30 2009 17 / 18