================================================= PyPy - papers, talks and related projects ================================================= Papers ---------------------------------- *Articles about PyPy published so far, most recent first:* (bibtex_ file) * `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):* * `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 .. _bibtex: http://codespeak.net/svn/pypy/extradoc/talk/bibtex.bib .. _`High performance implementation of Python for CLI/.NET with JIT compiler generation for dynamic languages`: http://codespeak.net/svn/user/antocuni/phd/thesis/thesis.pdf .. _`How to *not* write Virtual Machines for Dynamic Languages`: http://codespeak.net/svn/pypy/extradoc/talk/dyla2007/dyla.pdf .. _`Tracing the Meta-Level: PyPy's Tracing JIT Compiler`: http://codespeak.net/svn/pypy/extradoc/talk/icooolps2009/bolz-tracing-jit.pdf .. _`Faster than C#: Efficient Implementation of Dynamic Languages on .NET`: http://codespeak.net/svn/pypy/extradoc/talk/icooolps2009-dotnet/cli-jit.pdf .. _`Automatic JIT Compiler Generation with Runtime Partial Evaluation`: http://codespeak.net/svn/user/cfbolz/jitpl/thesis/final-master.pdf .. _`RPython: A Step towards Reconciling Dynamically and Statically Typed OO Languages`: http://www.disi.unige.it/person/AnconaD/papers/Recent_abstracts.html#AACM-DLS07 .. _`EU Reports`: index-report.html .. _`PyGirl: Generating Whole-System VMs from High-Level Prototypes using PyPy`: http://www.iam.unibe.ch/~verwaest/pygirl.pdf .. _`Representation-Based Just-in-Time Specialization and the Psyco Prototype for Python`: http://psyco.sourceforge.net/psyco-pepm-a.ps.gz .. _`Back to the Future in One Week -- Implementing a Smalltalk VM in PyPy`: http://dx.doi.org/10.1007/978-3-540-89275-5_7 .. _`Automatic generation of JIT compilers for dynamic languages in .NET`: http://codespeak.net/svn/pypy/extradoc/talk/ecoop2009/main.pdf .. _`Core Object Optimization Results`: http://codespeak.net/svn/pypy/extradoc/eu-report/D06.1_Core_Optimizations-2007-04-30.pdf .. _`Compiling Dynamic Language Implementations`: http://codespeak.net/pypy/extradoc/eu-report/D05.1_Publish_on_translating_a_very-high-level_description.pdf Talks and Presentations ---------------------------------- 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`_. .. __: http://codespeak.net/svn/pypy/extradoc/talk/s3-2008/talk.pdf 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`_. .. __: http://codespeak.net/svn/pypy/extradoc/talk/roadshow-ibm/ .. __: http://codespeak.net/svn/pypy/extradoc/talk/roadshow-google/Pypy_architecture.pdf .. __: http://codespeak.net/svn/pypy/extradoc/talk/dls2007/rpython-talk.pdf 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. .. _`PyCon 2010`: http://morepypy.blogspot.com/2010/02/pycon-2010-report.html .. _`RuPy 2009`: http://morepypy.blogspot.com/2009/11/pypy-on-rupy-2009.html .. _`PyPy 3000`: http://codespeak.net/pypy/extradoc/talk/ep2006/pypy3000.txt .. _`What can PyPy do for you`: http://codespeak.net/pypy/extradoc/talk/ep2006/usecases-slides.html .. _`PyPy introduction at EuroPython 2006`: http://codespeak.net/pypy/extradoc/talk/ep2006/intro.pdf .. _`PyPy - the new Python implementation on the block`: http://codespeak.net/pypy/extradoc/talk/22c3/hpk-tech.html .. _`PyPy development method`: http://codespeak.net/pypy/extradoc/talk/pycon2006/method_talk.html .. _`PyPy intro`: http://codespeak.net/pypy/extradoc/talk/accu2006/accu-2006.pdf .. _oscon2003-paper: http://codespeak.net/pypy/extradoc/talk/oscon2003-paper.html .. _`Architecture introduction slides`: http://codespeak.net/pypy/extradoc/talk/amsterdam-sprint-intro.pdf .. _`EU funding for FOSS`: http://codespeak.net/pypy/extradoc/talk/2004-21C3-pypy-EU-hpk.pdf .. _`py lib slides`: http://codespeak.net/pypy/extradoc/talk/2005-pycon-py.pdf .. _`PyCon 2005`: http://codespeak.net/pypy/extradoc/talk/pypy-talk-pycon2005/README.html .. _`Trouble in Paradise`: http://codespeak.net/pypy/extradoc/talk/agile2006/during-oss-sprints_talk.pdf .. _`Sprint Driven Development`: http://codespeak.net/pypy/extradoc/talk/xp2006/during-xp2006-sprints.pdf .. _`Kill -1`: http://codespeak.net/pypy/extradoc/talk/ep2006/kill_1_agiletalk.pdf .. _`Open Source, EU-Funding and Agile Methods`: http://codespeak.net/pypy/extradoc/talk/22c3/agility.pdf .. _`PyPy Status`: http://codespeak.net/pypy/extradoc/talk/vancouver/talk.html .. _`Sprinting the PyPy way`: http://codespeak.net/svn/pypy/extradoc/talk/ep2005/pypy_sprinttalk_ep2005bd.pdf .. _`PyPy's VM Approach`: http://codespeak.net/pypy/extradoc/talk/dls2006/talk.html .. _`PyPy's approach to virtual machine construction`: http://codespeak.net/svn/pypy/extradoc/talk/dls2006/pypy-vm-construction.pdf .. _`EuroPython talks 2009`: http://codespeak.net/svn/pypy/extradoc/talk/ep2009/ .. _`PyCon talks 2009`: http://codespeak.net/svn/pypy/extradoc/talk/pycon2009/ .. _`Wroclaw (Poland) presentation`: http://codespeak.net/svn/pypy/extradoc/talk/wroclaw2009/talk.pdf .. _`PyPy talk at OpenBossa 09`: http://morepypy.blogspot.com/2009/03/pypy-talk-at-openbossa-09.html .. _`at SFI 08`: http://codespeak.net/svn/pypy/extradoc/talk/sfi2008/ .. _`at PyCon Poland 08`: http://codespeak.net/svn/pypy/extradoc/talk/pyconpl-2008/talk.pdf .. _`The PyPy Project and You`: http://codespeak.net/svn/pypy/extradoc/talk/osdc2008/osdc08.pdf .. _`EuroPython talks 2008`: http://codespeak.net/svn/pypy/extradoc/talk/ep2008/ .. _`Maemo summit`: http://morepypy.blogspot.com/2008/09/pypypython-at-maemo-summit.html .. _`PyCon UK 2008 - JIT`: http://codespeak.net/svn/pypy/extradoc/talk/pycon-uk-2008/jit/pypy-vm.pdf .. _`PyCon UK 2008 - Status`: http://codespeak.net/svn/pypy/extradoc/talk/pycon-uk-2008/status/status.pdf .. _`PyCon Italy 2008`: http://codespeak.net/svn/pypy/extradoc/talk/pycon-italy-2008/pypy-vm.pdf .. _`RuPy 2008`: http://codespeak.net/svn/pypy/extradoc/talk/rupy2008/ .. _`RuPy 2007`: http://codespeak.net/svn/pypy/extradoc/talk/rupy2007/ .. _`PyCon 2008`: http://codespeak.net/svn/pypy/extradoc/talk/pycon2008/ .. _`ESUG 2007`: http://codespeak.net/svn/pypy/extradoc/talk/esug2007/ .. _`Bern (Switzerland) 2007`: http://codespeak.net/svn/pypy/extradoc/talk/bern2007/ .. _`PyCon UK 2007`: http://codespeak.net/svn/pypy/extradoc/talk/pyconuk07/ .. _Dresden: http://codespeak.net/svn/pypy/extradoc/talk/dresden/ .. _`EuroPython 2007`: http://codespeak.net/svn/pypy/extradoc/talk/ep2007/ .. _`Bad Honnef 2007`: http://codespeak.net/svn/pypy/extradoc/talk/badhonnef2007/talk.pdf .. _`Dzug talk`: http://codespeak.net/svn/pypy/extradoc/talk/dzug2007/dzug2007.txt .. _`PyCon 2007`: http://codespeak.net/svn/pypy/extradoc/talk/pycon2007/ .. _`PyCon - Uno 2007`: http://codespeak.net/svn/pypy/extradoc/talk/pycon-uno2007/pycon07.pdf .. _`Warsaw 2007`: http://codespeak.net/svn/pypy/extradoc/talk/warsaw2007/ .. _`Warsaw 2006`: http://codespeak.net/svn/pypy/extradoc/talk/warsaw2006/ .. _`Tokyo 2006`: http://codespeak.net/svn/pypy/extradoc/talk/tokyo/ 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 Microsofts 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 on codespeak; browsing through it is a lot of fun. .. _TraceMonkey: https://wiki.mozilla.org/JavaScript:TraceMonkey .. _`CLR under the hood`: http://download.microsoft.com/download/2/4/d/24dfac0e-fec7-4252-91b9-fb2310603f14/CLRUnderTheHood.BradA.ppt .. _Stackless: http://stackless.com .. _Psyco: http://psyco.sourceforge.net .. _Jython: http://www.jython.org .. _`Squeak`: http://www.squeak.org/ .. _`Croquet`: http://www.opencroquet.org/ .. _`transparent dynamic optimization`: http://www.hpl.hp.com/techreports/1999/HPL-1999-77.pdf .. _Dynamo: http://www.hpl.hp.com/techreports/1999/HPL-1999-78.pdf .. _testdesign: coding-guide.html#test-design .. _feasible: http://codespeak.net/pipermail/pypy-dev/2004q2/001289.html .. _rock: http://codespeak.net/pipermail/pypy-dev/2004q1/001255.html .. _LLVM: http://llvm.org/ .. _IronPython: http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython .. _`Dynamic Native Optimization of Native Interpreters`: http://www.ai.mit.edu/~gregs/dynamorio.html .. _JikesRVM: http://jikesrvm.sf.net .. _Tunes: http://tunes.org .. _`old Tunes Wiki`: http://codespeak.net/cliki.tunes.org/