Friday, October 22, 2010

PhD Thesis about PyPy's CLI JIT Backend

Hi all,

few months ago I finished the PhD studies and now my thesis is available,
just in case someone does not have anything better to do than read it :-).

The title of the thesis is High performance implementation of Python for
CLI/.NET with JIT compiler generation for dynamic languages, and its mainly
based on my work on the CLI backend for the PyPy JIT (note that the CLI JIT
backend is currently broken on trunk, but it's still working in the cli-jit
branch).

The thesis might be useful also for people that are not directly interested in
the CLI JIT backend, as it also contains general information about the inner
workings of PyPy which are independent from the backend: in particular,
chapters 5 and 6 explain how the JIT frontend works.

Here is the summary of chapters:

Introduction

The problem

Enter PyPy

Characterization of the target platform

Tracing JITs in a nutshell

The PyPy JIT compiler generator

The CLI JIT backend

Benchmarks

Conclusion and Future Work

cheers,
Anto

Hi all,

few months ago I finished the PhD studies and now my thesis is available,
just in case someone does not have anything better to do than read it :-).

The title of the thesis is High performance implementation of Python for
CLI/.NET with JIT compiler generation for dynamic languages, and its mainly
based on my work on the CLI backend for the PyPy JIT (note that the CLI JIT
backend is currently broken on trunk, but it's still working in the cli-jit
branch).

The thesis might be useful also for people that are not directly interested in
the CLI JIT backend, as it also contains general information about the inner
workings of PyPy which are independent from the backend: in particular,
chapters 5 and 6 explain how the JIT frontend works.

@anonymous: here you can find the bibtex for the thesis, as wall as for other PyPy related papers: http://codespeak.net/svn/pypy/extradoc/talk/bibtex.bib

@glyph: unfortunately, trunk has diverged a lot since the cli-jit branch, and merging is not an easy issue. There are also fundamental features that on CLI cannot be implemented as efficently as on x86. It's on my todo list, but no concrete plan so far :-(