Tuesday, March 10, 2009

Good news everyone!

A quick update from the JIT front. As of yesterday, we're now able to translate
a highly-experimental Python interpreter that contains JIT. It mostly crashes
immediately, mostly due to some unsupported operations in the assembler backend,
but for a carefully crafted program, we're able to get massive speedups.
For something as complex as:

i = 0
while i < 10000000:
i = i + 1

our JIT is about 20x faster than CPython. That's still about 3x slower than
Psyco, but looking at assembler code it's obvious that we can speed it up
a lot. These are very good news, since we don't encode python semantics at
all in the JIT. The JIT is automatically generated from the Python interpreter
source code. This means we should be able to expand it to handle more complex
python programs relatively quickly (interested assembler experts needed!).

This is actually the fifth incarnation of JIT that happened over the last
two years. It's by far simpler and more promising than any of the previous
approaches. Expect more details soon!

Cheers,
fijal

A quick update from the JIT front. As of yesterday, we're now able to translate
a highly-experimental Python interpreter that contains JIT. It mostly crashes
immediately, mostly due to some unsupported operations in the assembler backend,
but for a carefully crafted program, we're able to get massive speedups.
For something as complex as:

i = 0
while i < 10000000:
i = i + 1

our JIT is about 20x faster than CPython. That's still about 3x slower than
Psyco, but looking at assembler code it's obvious that we can speed it up
a lot. These are very good news, since we don't encode python semantics at
all in the JIT. The JIT is automatically generated from the Python interpreter
source code. This means we should be able to expand it to handle more complex
python programs relatively quickly (interested assembler experts needed!).

This is actually the fifth incarnation of JIT that happened over the last
two years. It's by far simpler and more promising than any of the previous
approaches. Expect more details soon!