pypy / pypy / doc / extradoc.rst

David Malcolm 1e46012 
David Malcolm 47ed8f9 
David Malcolm 1e46012 






Antonio Cuni 6230d4c 
Armin Rigo 71d3d24 


Antonio Cuni 6230d4c 





David Malcolm 1e46012 



































Armin Rigo 71d3d24 


David Malcolm 1e46012 













Dario Bertini 74b4a53 
Armin Rigo 71d3d24 
Antonio Cuni 6230d4c 

Armin Rigo 7442ea8 
Dario Bertini 74b4a53 



David Malcolm 1e46012 

Armin Rigo 71d3d24 
Dario Bertini 5d78885 
David Malcolm 1e46012 

Dario Bertini 74b4a53 

David Malcolm 1e46012 



















































Dario Bertini 74b4a53 
David Malcolm 1e46012 

































Dario Bertini 74b4a53 


David Malcolm 1e46012 
































































































Dario Bertini 74b4a53 
David Malcolm 1e46012 
Dario Bertini 74b4a53 



David Malcolm 1e46012 
Dario Bertini 74b4a53 



David Malcolm 1e46012 
Dario Bertini 74b4a53 

















David Malcolm 1e46012 






































Armin Rigo 7442ea8 
David Malcolm 1e46012 














Dario Bertini 5d78885 


David Malcolm 1e46012 
Armin Rigo 7442ea8 
=================================================
Papers, talks and related projects 
=================================================

Papers
----------------------------------

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


* `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


.. _bibtex: https://bitbucket.org/pypy/extradoc/raw/tip/talk/bibtex.bib
.. _`Runtime Feedback in a Meta-Tracing JIT for Efficient Dynamic Languages`: https://bitbucket.org/pypy/extradoc/raw/extradoc/talk/icooolps2011/jit-hints.pdf
.. _`Allocation Removal by Partial Evaluation in a Tracing JIT`: http://codespeak.net/svn/pypy/extradoc/talk/pepm2011/bolz-allocation-removal.pdf
.. _`Towards a Jitting VM for Prolog Execution`: http://www.stups.uni-duesseldorf.de/publications/bolz-prolog-jit.pdf
.. _`High performance implementation of Python for CLI/.NET with JIT compiler generation for dynamic languages`: http://buildbot.pypy.org/misc/antocuni-thesis.pdf
.. _`How to *not* write Virtual Machines for Dynamic Languages`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/dyla2007/dyla.pdf
.. _`Tracing the Meta-Level: PyPy's Tracing JIT Compiler`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/icooolps2009/bolz-tracing-jit.pdf
.. _`Faster than C#: Efficient Implementation of Dynamic Languages on .NET`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/icooolps2009-dotnet/cli-jit.pdf
.. _`Automatic JIT Compiler Generation with Runtime Partial Evaluation`:  http://www.stups.uni-duesseldorf.de/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
.. _`Hardware Transactional Memory Support for Lightweight Dynamic Language Evolution`: http://sabi.net/nriley/pubs/dls6-riley.pdf
.. _`PyGirl: Generating Whole-System VMs from High-Level Prototypes using PyPy`: http://scg.unibe.ch/archive/papers/Brun09cPyGirl.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`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/ecoop2009/main.pdf
.. _`Core Object Optimization Results`: https://bitbucket.org/pypy/extradoc/raw/tip/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`_.

.. __: https://bitbucket.org/pypy/extradoc/raw/tip/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`_.

.. __: https://bitbucket.org/pypy/extradoc/raw/tip/talk/roadshow-ibm/
.. __: https://bitbucket.org/pypy/extradoc/raw/tip/talk/roadshow-google/Pypy_architecture.pdf
.. __: https://bitbucket.org/pypy/extradoc/raw/tip/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`: https://bitbucket.org/pypy/extradoc/raw/tip/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`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/dls2006/pypy-vm-construction.pdf
.. _`EuroPython talks 2009`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/ep2009/
.. _`PyCon talks 2009`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pycon2009/
.. _`Wroclaw (Poland) presentation`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/wroclaw2009/talk.pdf
.. _`PyPy talk at OpenBossa 09`: http://morepypy.blogspot.com/2009/03/pypy-talk-at-openbossa-09.html
.. _`at SFI 08`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/sfi2008/
.. _`at PyCon Poland 08`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pyconpl-2008/talk.pdf
.. _`The PyPy Project and You`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/osdc2008/osdc08.pdf
.. _`EuroPython talks 2008`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/ep2008/
.. _`Maemo summit`: http://morepypy.blogspot.com/2008/09/pypypython-at-maemo-summit.html
.. _`PyCon UK 2008 - JIT`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pycon-uk-2008/jit/pypy-vm.pdf
.. _`PyCon UK 2008 - Status`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pycon-uk-2008/status/status.pdf
.. _`PyCon Italy 2008`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pycon-italy-2008/pypy-vm.pdf
.. _`RuPy 2008`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/rupy2008/
.. _`RuPy 2007`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/rupy2007/
.. _`PyCon 2008`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pycon2008/
.. _`ESUG 2007`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/esug2007/
.. _`Bern (Switzerland) 2007`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/bern2007/
.. _`PyCon UK 2007`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pyconuk07/
.. _Dresden: https://bitbucket.org/pypy/extradoc/raw/tip/talk/dresden/
.. _`EuroPython 2007`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/ep2007/
.. _`Bad Honnef 2007`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/badhonnef2007/talk.pdf
.. _`Dzug talk`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/dzug2007/dzug2007.txt
.. _`PyCon 2007`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pycon2007/
.. _`PyCon - Uno 2007`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pycon-uno2007/pycon07.pdf
.. _`Warsaw 2007`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/warsaw2007/
.. _`Warsaw 2006`: https://bitbucket.org/pypy/extradoc/raw/tip/talk/warsaw2006/
.. _`Tokyo 2006`: https://bitbucket.org/pypy/extradoc/raw/tip/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 
  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.

.. _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://ironpython.codeplex.com/
.. _`Dynamic Native Optimization of Native Interpreters`: http://people.csail.mit.edu/gregs/dynamorio.html
.. _JikesRVM: http://jikesrvm.org/
.. _Tunes: http://tunes.org
.. _`old Tunes Wiki`: http://buildbot.pypy.org/misc/cliki.tunes.org/
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.