# pypy / pypy / doc / extradoc.rst

 David Malcolm 1e46012 2011-03-14 David Malcolm 47ed8f9 2011-03-16 David Malcolm 1e46012 2011-03-14 Antonio Cuni 6230d4c 2011-04-27 Armin Rigo 71d3d24 2012-01-10 Antonio Cuni 6230d4c 2011-04-27 David Malcolm 1e46012 2011-03-14 Armin Rigo 71d3d24 2012-01-10 David Malcolm 1e46012 2011-03-14 Dario Bertini 74b4a53 2011-04-25 Armin Rigo 71d3d24 2012-01-10 Antonio Cuni 6230d4c 2011-04-27 Armin Rigo 7442ea8 2011-05-09 Dario Bertini 74b4a53 2011-04-25 David Malcolm 1e46012 2011-03-14 Armin Rigo 71d3d24 2012-01-10 Dario Bertini 5d78885 2011-04-25 David Malcolm 1e46012 2011-03-14 Dario Bertini 74b4a53 2011-04-25 David Malcolm 1e46012 2011-03-14 Dario Bertini 74b4a53 2011-04-25 David Malcolm 1e46012 2011-03-14 Dario Bertini 74b4a53 2011-04-25 David Malcolm 1e46012 2011-03-14 Dario Bertini 74b4a53 2011-04-25 David Malcolm 1e46012 2011-03-14 Dario Bertini 74b4a53 2011-04-25 David Malcolm 1e46012 2011-03-14 Dario Bertini 74b4a53 2011-04-25 David Malcolm 1e46012 2011-03-14 Dario Bertini 74b4a53 2011-04-25 David Malcolm 1e46012 2011-03-14 Armin Rigo 7442ea8 2011-05-09 David Malcolm 1e46012 2011-03-14 Dario Bertini 5d78885 2011-04-25 David Malcolm 1e46012 2011-03-14 Armin Rigo 7442ea8 2011-05-09  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 ================================================= 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.