PyPy
  • What is PyPy?
  • Downloading and Installing PyPy
    • Download a pre-built PyPy
    • Installing PyPy
    • Installing using virtualenv
    • Building PyPy yourself
  • Building PyPy from Source
    • Clone the repository
    • Install build-time dependencies
    • Run the translation
    • Translating with non-standard options
    • Packaging (preparing for installation)
    • Installation
  • Frequently Asked Questions
    • What is PyPy?
    • Is PyPy a drop in replacement for CPython?
    • Module xyz does not work with PyPy: ImportError
    • Do CPython Extension modules work with PyPy?
    • On which platforms does PyPy run?
    • Which Python version (2.x?) does PyPy implement?
    • Does PyPy have a GIL? Why?
    • Is PyPy more clever than CPython about Tail Calls?
    • How do I write extension modules for PyPy?
    • How fast is PyPy?
    • Couldn’t the JIT dump and reload already-compiled machine code?
    • Would type annotations help PyPy’s performance?
    • Can I use PyPy’s translation toolchain for other languages besides Python?
    • How do I get into PyPy development? Can I come to sprints?
    • OSError: ... cannot restore segment prot after reloc... Help?
  • Differences between PyPy and CPython
    • Extension modules
    • Differences related to garbage collection strategies
    • Subclasses of built-in types
    • Mutating classes of objects which are already used as dictionary keys
    • Ignored exceptions
    • Object Identity of Primitive Values, is and id
    • Miscellaneous
  • Writing extension modules for pypy
    • CFFI
    • CTypes
    • Reflex
  • RPython Mixed Modules
    • cppyy: C++ bindings for PyPy
      • Motivation
      • Installation
      • Basic bindings example
      • Automatic class loader
      • Advanced example
      • Features
      • Templates
      • The fast lane
      • CPython
      • Python3
        • Backends for cppyy
        • File example.h
  • Embedding PyPy
    • Minimal example
    • More complete example
    • Finding pypy_home
    • Threading
  • Garbage collector configuration
    • Minimark
  • JIT hooks
  • Application-level Stackless features
    • Introduction
    • Theory
    • Application level interface
      • Continulets
      • Genlets
      • Greenlets
      • Unimplemented features
      • Recursion depth limit
      • Stacklets
      • Theory of composability
  • The __pypy__ module
    • Generally available functionality
    • Transparent Proxy Functionality
    • Functionality available on py.py (not after translation)
  • What PyPy can do for your objects
    • Transparent Proxies
      • Example of the core mechanism
      • Example of recording all operations on builtins
      • Transparent Proxy PyPy builtins and support
      • tputil helper module
      • Further points of interest
      • Implementation Notes
  • PyPy’s sandboxing features
    • Introduction
    • Overview
    • Howto
  • Software Transactional Memory
    • What pypy-stm is for
      • ...and what pypy-stm is not for
    • Getting Started
      • Current status (stmgc-c7)
    • Python 3, CPython, and others
    • User Guide
      • How to write multithreaded programs: the 10‘000-feet view
      • Drop-in replacement
      • transaction.TransactionQueue
      • Atomic sections
      • Locks
      • Miscellaneous functions
      • More details about conflicts
    • Implementation
      • Technical reports
      • Reference to implementation details
    • See also
  • Translating on Windows
    • Translating PyPy with Visual Studio
    • Preparing Windows for the large build
    • Installing external packages
    • Abridged method (for -Ojit builds using Visual Studio 2008)
    • Nonabrided method (building from scratch)
      • The Boehm garbage collector
      • The zlib compression library
      • The bz2 compression library
      • The sqlite3 database library
      • The expat XML parser
      • The OpenSSL library
      • TkInter module support
    • Using the mingw compiler
      • libffi for the mingw compiler
      • hacking on PyPy with the mingw compiler
    • What is missing for a full 64-bit translation
  • Getting Started Developing With PyPy
    • Using Mercurial
    • Running PyPy’s unit tests
    • Special Introspection Features of the Untranslated Python Interpreter
      • Interpreter-level console
      • pyinteractive.py options
      • Tracing bytecode and operations on objects
    • Demos
    • Additional Tools for running (and hacking) PyPy
      • graphviz & pygame for flow graph viewing (highly recommended)
      • py.test and the py lib
    • Getting involved
    • Where to start reading the sources
  • How to contribute to PyPy
    • Don’t just hack
    • Test driven development
    • Layers
  • You want to help with PyPy, now what?
    • Architecture
    • Toolset
  • Goals and Architecture Overview
    • Mission statement
    • High Level Goals
    • PyPy Python Interpreter
  • PyPy’s Configuration Handling
    • Main Assumption
    • API Details
      • Description of Options
        • OptionDescription
        • ChoiceOption
        • BoolOption
        • IntOption
        • FloatOption
        • StrOption
      • Configuration Objects
      • Production of optparse Parsers
    • The usage of config objects in PyPy
  • Potential project list
    • Simple tasks for newcomers
    • Mid-to-large tasks
      • Make bytearray type fast
      • Implement copy-on-write list slicing
      • Numpy improvements
      • Improving the jitviewer
      • Optimized Unicode Representation
      • Translation Toolchain
      • Various GCs
      • STM (Software Transactional Memory)
      • Introduce new benchmarks
      • Embedding PyPy and improving CFFI
      • Optimising cpyext (CPython C-API compatibility layer)
    • Make more python modules pypy-friendly
  • Project Documentation
    • Goals and Architecture Overview
      • Mission statement
      • High Level Goals
      • PyPy Python Interpreter
    • Coding Guide
      • Overview and motivation
        • CPython vs. PyPy
        • Application-level and interpreter-level execution and objects
        • Application level is often preferable
        • Our runtime interpreter is “RPython”
      • Wrapping rules
        • Wrapping
        • Naming conventions
        • Operations on w_xxx
        • Application-level exceptions
      • Modules in PyPy
        • Determining the location of a module implementation
        • Module directories / Import order
        • Modifying a CPython library module or regression test
        • Implementing a mixed interpreter/application level Module
        • application level definitions
        • interpreter level definitions
        • Testing modules in lib_pypy/
        • Testing modules in pypy/module
        • Testing modules in lib-python
      • Naming conventions and directory layout
        • Directory and File Naming
        • Naming of python objects
        • Committing & Branching to the repository
      • Using the development bug/feature tracker
      • Testing in PyPy
        • Interpreter level tests
        • Application Level tests
        • Command line tool test_all
        • Coverage reports
        • Test conventions
      • Changing documentation and website
        • documentation/website files in your local checkout
        • Automatically test documentation/website changes
    • Sprint reports from PyPy sprints 2003-2010
    • Papers, talks and related projects
      • Papers
      • Talks and Presentations
        • Talks in 2010
        • Talks in 2009
        • Talks in 2008
        • Talks in 2007
        • Talks in 2006
        • Talks in 2005
        • Talks in 2004
        • Talks in 2003
      • Related projects
    • PyPy video documentation
      • Copyrights and Licensing
      • Trailer: PyPy at the PyCon 2006
      • Interview with Tim Peters
      • Interview with Bob Ippolito
      • Introductory talk on PyPy
      • Talk on Agile Open Source Methods in the PyPy project
      • PyPy Architecture session
      • Sprint tutorial
      • Scripting .NET with IronPython by Jim Hugunin
      • Bram Cohen, founder and developer of BitTorrent
      • Keynote speech by Guido van Rossum on the new Python 2.5 features
      • Trailer: PyPy sprint at the University of Palma de Mallorca
      • Coding discussion of core developers Armin Rigo and Samuele Pedroni
      • PyPy technical talk at the University of Palma de Mallorca
    • PyPy - Overview over the EU-reports
      • Reports of 2007
      • Reports of 2006
      • Reports of 2005
    • Distributed and agile development in PyPy
      • Sprint driven development:
        • How is it done?
        • Can I join in?
    • Glossary
  • Source Code Documentation
    • The Object Space
      • Introduction
      • Object Space Interface
        • Administrative Functions
        • Operations on Objects in the Object Space
        • Convenience Functions
        • Creation of Application Level objects
        • Conversions from Application Level to Interpreter Level
        • Data Members
      • The Standard Object Space
        • Introduction
        • Object types
      • Object Space proxies
    • Bytecode Interpreter
      • Introduction and Overview
      • Bytecode Interpreter Implementation Classes
        • Frame classes
        • Code Class
        • Function and Method classes
        • Arguments Class
        • Module Class
        • Gateway classes
        • Introspection and Descriptors
    • Standard Interpreter Optimizations
      • Introduction
      • Object Optimizations
        • Integer Optimizations
        • Dictionary Optimizations
        • List Optimizations
        • User Class Optimizations
      • Interpreter Optimizations
        • Special Bytecodes
      • Overall Effects
    • PyPy Parser
      • Overview
      • Tokenizer
      • Parser
        • Building the Python grammar
        • Parser implementation
        • Parsing Python
      • Compiler
        • Building AST
        • AST Optimization
        • Symbol analysis
        • Bytecode generation
    • Configuration Options for PyPy
      • PyPy Python interpreter options
        • Internal Options
      • General translation options
        • Internal Options
      • translation
        • translation.continuation
        • translation.type_system
        • translation.backend
        • translation.shared
        • translation.log
        • translation.gc
        • translation.gctransformer
        • translation.gcremovetypeptr
        • translation.gcrootfinder
        • translation.thread
        • translation.sandbox
        • translation.rweakref
        • translation.jit
        • translation.jit_backend
        • translation.jit_profiler
        • translation.check_str_without_nul
        • translation.verbose
        • translation.cc
        • translation.profopt
        • translation.noprofopt
        • translation.instrument
        • translation.countmallocs
        • translation.fork_before
        • translation.dont_write_c_files
        • translation.instrumentctl
        • translation.output
        • translation.secondaryentrypoints
        • translation.dump_static_data_info
        • translation.no__thread
        • translation.make_jobs
        • translation.list_comprehension_operations
        • translation.withsmallfuncsets
        • translation.taggedpointers
        • translation.lldebug
        • translation.lldebug0
        • translation.icon
        • translation.backendopt
        • translation.platform
      • objspace
        • objspace.usemodules
        • objspace.allworkingmodules
        • objspace.extmodules
        • objspace.translationmodules
        • objspace.usepycfiles
        • objspace.lonepycfiles
        • objspace.soabi
        • objspace.honor__builtins__
        • objspace.disable_call_speedhacks
        • objspace.std
      • The --opt or -O translation option
    • Command line reference
      • Manual pages
        • pypy
    • PyPy directory cross-reference
  • Making a PyPy Release
    • Overview
    • Release Steps
  • Papers, talks and related projects
    • Papers
    • Talks and Presentations
      • Talks in 2010
      • Talks in 2009
      • Talks in 2008
      • Talks in 2007
      • Talks in 2006
      • Talks in 2005
      • Talks in 2004
      • Talks in 2003
    • Related projects
  • More sprints
    • EuroPython PyPy sprint 6-9 July 2006
    • PyPy at XP 2006 and Agile 2006
    • Duesseldorf PyPy sprint 2-9 June 2006
    • PyPy sprint at Akihabara (Tokyo, Japan)
    • PyPy at Python UK/ACCU Conference (United Kingdom)
    • PyPy at XPDay France 2006 in Paris March 23rd - March 24th 2006
    • Logic Sprint at Louvain-la-Neuve University (Louvain-la-Neuve, Belgium)
    • PyCon Sprint 2006 (Dallas, Texas, USA)
    • Talks at PyCon 2006 (Dallas, Texas, USA)
    • PyPy at Solutions Linux in Paris January 31st - February 2nd 2006
    • PyPy Sprint in Palma De Mallorca 23rd - 29th January 2006
    • Preliminary EU reports released
    • PyPy Sprint in Göteborg 7th - 11th December 2005
    • PyPy release 0.8.0
    • PyPy Sprint in Paris 10th-16th October 2005
    • PyPy release 0.7.0
    • PyPy Sprint in Heidelberg 22nd-29th August 2005
    • PyPy Hildesheim2 finished: first self-contained PyPy run!
    • EuroPython 2005 sprints finished
  • Old discussion notes needing categorization
    • Ordering finalizers in the SemiSpace GC
      • Goal
      • Algorithm
    • Designing thread pickling or “the Essence of Stackless Python”
      • What is meant by pickling?
      • What is not meant by pickling?
      • Basic necessities
      • The real problem
      • Why a problem?
      • SLP switching strategies
      • Analogies between SLP and PyPy
      • Ways to handle the problem in a minimalistic way
      • Just an addition after some more thinking
    • Possible improvements of the rpython language
      • Improve the interpreter API
      • RPython language
      • Extensible type system for llexternal
    • PyPy’s ctypes implementation
      • Summary
      • Low-level part: _rawffi
      • High-level parts
      • Discussion and limitations
      • Running application examples
        • pyglet
      • ctypes configure
        • idea
        • installation
        • usage
    • A JIT-aware profiler
      • Expected output
      • What to do about “inner” bridges?
      • Detecting the enter to/exit from a loop
  • Historical release notes
    • CPython 2.7 compatible versions
      • PyPy 2.6.0 - Cameo Charm
        • What is PyPy?
        • Highlights
      • PyPy 2.5.1 - Pineapple Bromeliad
        • What is PyPy?
        • Highlights
      • PyPy 2.5.0 - Pincushion Protea
        • What is PyPy?
        • Highlights
      • PyPy 2.4 - Snow White
        • What is PyPy?
        • Highlights
      • PyPy 2.3.1 - Terrestrial Arthropod Trap Revisited
        • What is PyPy?
        • Highlights
      • PyPy 2.3 - Terrestrial Arthropod Trap
        • What is PyPy?
        • Highlights
      • PyPy 2.2.1 - Incrementalism.1
        • What is PyPy?
        • Highlights
      • PyPy 2.2 - Incrementalism
        • What is PyPy?
        • Highlights
      • PyPy 2.1 - Considered ARMful
        • What is PyPy?
        • Highlights
      • PyPy 2.1 beta 2
        • Highlights
        • What is PyPy?
        • How to use PyPy?
      • PyPy 2.1 beta 1
        • Highlights
        • What is PyPy?
        • How to use PyPy?
      • PyPy 2.1 - Considered ARMful
        • What is PyPy?
        • Highlights
      • PyPy 2.0.2 - Fermi Panini
        • What is PyPy?
        • Highlights
      • PyPy 2.0.1 - Bohr Smørrebrød
        • What is PyPy?
        • Highlights
      • PyPy 2.0 - Einstein Sandwich
        • What is PyPy?
        • Highlights
      • PyPy 2.0 beta 2
        • What is PyPy?
        • How to use PyPy?
        • Highlights
        • Improvements since 1.9
      • PyPy 2.0 beta 1
        • What is PyPy?
        • How to use PyPy?
        • Regressions
        • Highlights
        • Things we’re working on
      • PyPy 1.9 - Yard Wolf
        • What is PyPy?
        • Thanks to our donors
        • Highlights
        • JitViewer
      • PyPy 1.8 - business as usual
        • What is PyPy?
        • Highlights
        • Ongoing work
      • PyPy 1.7 - widening the sweet spot
        • What is PyPy?
        • Highlights
        • Things that didn’t make it, expect in 1.8 soon
        • Fundraising
      • PyPy 1.6 - kickass panda
        • What is PyPy?
        • Highlights
      • PyPy 1.5: Catching Up
        • What is PyPy?
        • More highlights
      • PyPy 1.4.1
        • What is PyPy
        • More highlights
      • PyPy 1.4beta - towards 1.4.0 release
      • PyPy 1.4: Ouroboros in practice
        • What is PyPy
        • More highlights
      • PyPy 1.3: Stabilization
        • Highlights of this release
      • PyPy 1.2: Just-in-Time Compilation
        • Highlights of This Release
        • What is PyPy?
      • PyPy 1.1: Compatibility & Consolidation
        • Highlights of This Release
        • Other Changes
        • What is PyPy?
      • PyPy 1.0: JIT compilers for free and more
        • What is PyPy?
        • 1.0.0 Feature highlights
        • Funding partners and organizations
      • pypy-0.99.0: new object spaces, optimizations, configuration ...
        • What is PyPy?
        • Key 0.99.0 Features
        • What about 1.0?
        • Funding partners and organizations
      • pypy-0.9.0: stackless, new extension compiler
        • What is PyPy (about)?
        • Where to start?
        • Ongoing work and near term goals
        • Project Details
      • pypy-0.8.0: Translatable compiler/parser and some more speed
        • What is PyPy (about)?
        • Where to start?
        • Ongoing work and near term goals
      • pypy-0.7.0: first PyPy-generated Python Implementations
        • What is PyPy (about)?
        • Where to start?
        • Ongoing work and near term goals
      • The PyPy 0.6 release
      • What it is and where to start
      • Interesting bits and highlights
      • Ongoing work and near term goals
    • CPython 3.2 compatible versions
      • PyPy3 2.4 - Snow White
        • What is PyPy?
        • PyPy3 Highlights
        • Further Highlights (shared w/ PyPy2)
      • PyPy3 2.3.1 - Fulcrum
        • Highlights
        • What is PyPy?
        • How to use PyPy?
      • PyPy3 2.1 beta 1
        • Highlights
        • What is PyPy?
        • How to use PyPy?
  • Changelogs
    • CPython 2.7 compatible versions
      • What’s new in PyPy 2.6+
      • What’s new in PyPy 2.5+
      • What’s new in PyPy 2.5.1
      • What’s new in PyPy 2.5.0
      • What’s new in PyPy 2.4+
      • What’s new in PyPy 2.3
      • What’s new in PyPy 2.2.1
      • What’s new in PyPy 2.2
      • What’s new in PyPy 2.1
      • What’s new in PyPy 2.0
      • What’s new in PyPy xxx
      • What’s new in PyPy 1.9
    • CPython 3.2 compatible versions
      • What’s new in PyPy3 2.4.0
      • What’s new in PyPy3 2.3.1
  • Contributors to PyPy
 
PyPy
  • Docs »
  • Papers, talks and related projects
  • Edit on Bitbucket

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.
Next Previous

© Copyright 2015, The PyPy Project.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: release-2.6.x
Versions
latest
release-2.6.x
release-2.5.x
release-2.4.x
Downloads
htmlzip
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.