PyPy in production

Summary

[EuroPython 2011] Antonio Cuni,Armin Rigo - 23 June 2011 in "Track Lasagne"

"/>

Description

The PyPy project has recently gathered a lot of attention for its progress in speeding up the Python language - it is the fastest Python interpreter, and the most compatible and most stable 'alternative┬┤ one. No longer merely a research project, PyPy is now suitable for production use. We are working on improvements on calling into C libraries and generally integrating with the existing Python extensions ecosystem.

We will give an overview on how the tracing Just-in-Time compiler works in PyPy. From there, we will then focus on what the PyPy project has achieved, particularly in the past two years:

  • most Python benchmarks run much faster than with CPython or Psyco

  • the real-world PyPy compiler toolchain itself (200 KLocs) runs twice as fast

  • already supports 32 and 64bit x86 and is in the process of supporting ARM

  • full compatibility with CPython (more than Jython/IronPython)

  • full (and JIT-ed) ctypes support to call C libraries from Python

  • supports Stackless Python (in-progress)

  • new "cpyext" layer which integrates existing CPython C extensions

  • an experimental super-fast JIT-compilation of calls to C++ libraries

We want to reserve time for discussing potential future work like SWIG and/or Cython compatibility and other areas brought up by the audience. There are many interesting details that can be explored further; we will focus on the points the audience is most interested in.

For more info:

Eurostars Eureka is our funding source since 2009. It is a cross-European funding collaboration that targets small firms which produce research.