1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373
|
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
* :doc:`EU Reports <index-report>`: 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
.. _A Way Forward in Parallelising Dynamic Languages: https://bitbucket.org/pypy/extradoc/raw/extradoc/talk/icooolps2014/position-paper.pdf
.. _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: https://bitbucket.org/pypy/extradoc/raw/extradoc/talk/pepm2011/bolz-allocation-removal.pdf
.. _Towards a Jitting VM for Prolog Execution: http://stups.hhu.de/mediawiki/images/a/a7/Pub-BoLeSch2010.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: https://www.researchgate.net/profile/Davide_Ancona/publication/252023163_Automatic_generation_of_JIT_compilers_for_dynamic_languages_in_NET/links/53f2098e0cf2bc0c40e70023/Automatic-generation-of-JIT-compilers-for-dynamic-languages-in-NET.pdf
.. _`RPython: A Step towards Reconciling Dynamically and Statically Typed OO Languages`: http://www.disi.unige.it/person/AnconaD/papers/DynamicLanguages_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: https://bitbucket.org/pypy/extradoc/raw/tip/eu-report/D05.1_Publish_on_translating_a_very-high-level_description.pdf
Talks and Presentations
-----------------------
*This part is no longer updated.* The complete list is here__ (in
alphabetical order).
.. __: https://bitbucket.org/pypy/extradoc/src/extradoc/talk/
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: https://bitbucket.org/pypy/extradoc/raw/tip/talk/ep2006/pypy3000.txt
.. _What can PyPy do for you: https://bitbucket.org/pypy/extradoc/raw/tip/talk/ep2006/usecases-slides.txt
.. _PyPy introduction at EuroPython 2006: https://bitbucket.org/pypy/extradoc/raw/tip/talk/ep2006/intro.pdf
.. _PyPy - the new Python implementation on the block: https://bitbucket.org/pypy/extradoc/raw/tip/talk/22c3/hpk-tech.txt
.. _PyPy development method: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pycon2006/method_talk.txt
.. _PyPy intro: https://bitbucket.org/pypy/extradoc/raw/tip/talk/accu2006/accu-2006.pdf
.. _oscon2003-paper: https://bitbucket.org/pypy/extradoc/raw/tip/talk/oscon2003-paper.txt
.. _Architecture introduction slides: https://bitbucket.org/pypy/extradoc/raw/tip/talk/amsterdam-sprint-intro.pdf
.. _EU funding for FOSS: https://bitbucket.org/pypy/extradoc/raw/tip/talk/2004-21C3-pypy-EU-hpk.pdf
.. _py lib slides: https://bitbucket.org/pypy/extradoc/raw/tip/talk/2005-pycon-py.pdf
.. _PyCon 2005: https://bitbucket.org/pypy/extradoc/raw/tip/talk/pypy-talk-pycon2005/README.txt
.. _Trouble in Paradise: https://bitbucket.org/pypy/extradoc/raw/tip/talk/agile2006/during-oss-sprints_talk.pdf
.. _Sprint Driven Development: https://bitbucket.org/pypy/extradoc/raw/tip/talk/xp2006/during-xp2006-sprints.pdf
.. _Kill -1: https://bitbucket.org/pypy/extradoc/raw/tip/talk/ep2006/kill_1_agiletalk.pdf
.. _Open Source, EU-Funding and Agile Methods: https://bitbucket.org/pypy/extradoc/raw/tip/talk/22c3/agility.pdf
.. _PyPy Status: https://bitbucket.org/pypy/extradoc/raw/tip/talk/vancouver/
.. _Sprinting the PyPy way: https://bitbucket.org/pypy/extradoc/raw/tip/talk/ep2005/pypy_sprinttalk_ep2005bd.pdf
.. _PyPy's VM Approach: https://bitbucket.org/pypy/extradoc/raw/tip/talk/dls2006/
.. _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
.. _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://www.jikesrvm.org/
.. _Tunes: http://tunes.org
.. _old Tunes Wiki: http://buildbot.pypy.org/misc/cliki.tunes.org/
|