# Papers, talks and related projects

## Papers

Articles about PyPy published so far, most recent first: (bibtex file)

- A Way Forward in Parallelising Dynamic Languages, R. Meier, A. Rigo
- Runtime Feedback in a Meta-Tracing JIT for Efficient Dynamic Languages, C.F. Bolz, A. Cuni, M. Fijalkowski, M. Leuschel, S. Pedroni, A. Rigo
- Allocation Removal by Partial Evaluation in a Tracing JIT, C.F. Bolz, A. Cuni, M. Fijalkowski, M. Leuschel, S. Pedroni, A. Rigo
- Towards a Jitting VM for Prolog Execution, C.F. Bolz, M. Leuschel, D, Schneider
- High performance implementation of Python for CLI/.NET with JIT compiler generation for dynamic languages, A. Cuni, Ph.D. thesis
- Tracing the Meta-Level: PyPy’s Tracing JIT Compiler, C.F. Bolz, A. Cuni, M. Fijalkowski, A. Rigo
- Faster than C#: Efficient Implementation of Dynamic Languages on .NET, A. Cuni, D. Ancona and A. Rigo
- Automatic JIT Compiler Generation with Runtime Partial Evaluation (Master Thesis), C.F. Bolz
- RPython: A Step towards Reconciling Dynamically and Statically Typed OO Languages, D. Ancona, M. Ancona, A. Cuni and N.D. Matsakis
- How to *not* write Virtual Machines for Dynamic Languages, C.F. Bolz and A. Rigo
- PyPy’s approach to virtual machine construction, A. Rigo and S. Pedroni

Non-published articles (only submitted so far, or technical reports):

- Automatic generation of JIT compilers for dynamic languages in .NET, D. Ancona, C.F. Bolz, A. Cuni and A. Rigo
- EU Reports: a list of all the reports we produced until 2007 for the European Union sponsored part of PyPy. Notably, it includes:
- Core Object Optimization Results, PyPy Team
- Compiling Dynamic Language Implementations, PyPy Team

Other research using PyPy (as far as we know it):

- Hardware Transactional Memory Support for Lightweight Dynamic Language Evolution, N. Riley and C. Zilles
- PyGirl: Generating Whole-System VMs from High-Level Prototypes using PyPy, C. Bruni and T. Verwaest
- Back to the Future in One Week – Implementing a Smalltalk VM in PyPy, C.F. Bolz, A. Kuhn, A. Lienhard, N. Matsakis, O. Nierstrasz, L. Renggli, A. Rigo and T. Verwaest

Previous work:

- Representation-Based Just-in-Time Specialization and the Psyco Prototype for Python, A. Rigo

## Talks and Presentations

This part is no longer updated. The complete list is here (in alphabetical order).

### Talks in 2010

- PyCon 2010.

### Talks in 2009

- RuPy 2009.
- EuroPython talks 2009.
- PyCon talks 2009.
- Wroclaw (Poland) presentation by Maciej Fijalkowski. Introduction, including about the current JIT.
- PyPy talk at OpenBossa 09 (blog post).

### Talks in 2008

- Talk at PyCon Poland 08. In Polish.
- The PyPy Project and You, by Michael Hudson at OSDC 2008.
- Back to the Future in One Week – Implementing a Smalltalk VM in PyPy by C.F. Bolz et al.; pdf of the presentation at S3 2008.
- EuroPython talks 2008.
- PyPy at the Maemo summit.
- PyCon UK 2008 - JIT and PyCon UK 2008 - Status.
- PyCon Italy 2008.
- Talk by Maciej Fijalkowski at SFI 08, Cracow (Poland) Academic IT Festival.
- RuPy 2008.
- PyCon 2008.

### Talks in 2007

- Our “road show” tour of the United States: presentations at IBM and at Google.
- ESUG 2007.
- RPython: A Step towards Reconciling Dynamically and Statically Typed OO Languages at DLS 2007. Pdf of the presentation.
- Talks at Bern (Switzerland) 2007.
- PyCon UK 2007.
- A presentation in Dresden by Maciej Fijalkowski.
- Multiple talks at EuroPython 2007.
- A presentation at Bad Honnef 2007 by C.F. Bolz about the Prolog interpreter.
- A Dzug talk by Holger Krekel.
- Multiple talks at PyCon 2007.
- A talk at PyCon - Uno 2007.
- RuPy 2007.
- Warsaw 2007.

### Talks in 2006

- Warsaw 2006.
- Tokyo 2006.
- PyPy’s VM Approach talk, given by Armin Rigo at the Dynamic Languages Symposium at OOPSLA‘06 (Portland OR), and by Samuele Pedroni at Intel Hillsboro (OR) (October). The talk presents the paper PyPy’s approach to virtual machine construction accepted for the symposium.
- PyPy Status talk, given by Samuele Pedroni at the Vancouner Python Workshop 2006 (August).
- Trouble in Paradise: the Open Source Project PyPy, EU-funding and Agile Practices talk, by Bea During at Agile 2006 (experience report).
- Sprint Driven Development, Agile Methodologies in a Distributed Open Source Project (PyPy) talk, by Bea During at XP 2006 (experience report).
- Kill -1: process refactoring in the PyPy project talk, by Bea During at the Agile track/Europython 2006.
- What can PyPy do for you, by Armin Rigo and Carl Friedrich Bolz given at EuroPython 2006. The talk describes practical usecases of PyPy.
- PyPy 3000, a purely implementation-centered lightning talk at EuroPython 2006, given by Armin Rigo and Holger Krekel.
- PyPy introduction at EuroPython 2006, given by Michael Hudson, also stating the status of the project.
- Very similar to the EuroPython intro talk (but somewhat older) is the PyPy intro talk, given by Michael Hudson at ACCU 2006 (April)
- PyPy development method talk, given by Bea During and Holger Krekel at Pycon2006

### Talks in 2005

- PyPy - the new Python implementation on the block, given by Carl Friedrich Bolz and Holger Krekel at the 22nd Chaos Communication Conference in Berlin, Dec. 2005.
- Open Source, EU-Funding and Agile Methods, given by Holger Krekel and Bea During at the 22nd Chaos Communication Conference in Berlin, Dec. 2005
- Sprinting the PyPy way, an overview about our sprint methodology, given by Bea During during EuroPython 2005. (More PyPy talks were given, but are not present in detail.)
- PyCon 2005 animated slices, mostly reporting on the translator status.
- py lib slides from the py lib talk at PyCon 2005 (py is used as a support/testing library for PyPy).

### Talks in 2004

- EU funding for FOSS talk on Chaos Communication Conference in Berlin, Dec 2004.

### Talks in 2003

- oscon2003-paper an early paper presented at Oscon 2003 describing what the PyPy project is about and why you should care.
- Architecture introduction slides a mostly up-to-date introduction for the Amsterdam PyPy-Sprint Dec 2003.

## Related projects

- TraceMonkey is using a tracing JIT, similar to the tracing JITs generated by our (in-progress) JIT generator.
- Dynamo showcased transparent dynamic optimization generating an optimized version of a binary program at runtime.
- Tailoring Dynamo to interpreter implementations and challenges - Gregory Sullivan et. al., Dynamic Native Optimization of Native Interpreters. IVME 03. 2003.
- Stackless is a recursion-free version of Python.
- Psyco is a just-in-time specializer for Python.
- JikesRVM a research dynamic optimizing Java VM written in Java.
- Squeak is a Smalltalk-80 implementation written in Smalltalk, being used in Croquet, an experimental distributed multi-user/multi-programmer virtual world.
- LLVM the low level virtual machine project.
- CLR under the hood (powerpoint, works with open office) gives a good introduction to the underlying models of Microsoft’s Common Language Runtime, the Intermediate Language, JIT and GC issues.
- spyweb translates Python programs to Scheme. (site unavailable)
- Jython is a Python implementation in Java.
- IronPython a new Python implementation compiling Python into Microsoft’s Common Language Runtime (CLR) Intermediate Language (IL).
- Tunes is not entirely unrelated. The web site changed a lot, but a snapshot of the old Tunes Wiki is available; browsing through it is a lot of fun.