Friday, March 12, 2010

Introducing the PyPy 1.2 release

We are pleased to announce PyPy's 1.2 release. This version 1.2 is a major milestone and it is the first release to ship a Just-in-Time compiler that is known to be faster than CPython (and unladen swallow) on some real-world applications (or the best benchmarks we could get for them). The main theme for the 1.2 release is speed.

The JIT is stable and we don't observe crashes. Nevertheless we would recommend you to treat it as beta software and as a way to try out the JIT to see how it works for you.

Highlights:

  • The JIT compiler.
  • Various interpreter optimizations that improve performance as well as help save memory. Read our various blog posts about achievements.
  • Introducing a new PyPy website at pypy.org made by tav and improved by the PyPy team.
  • Introducing speed.pypy.org made by Miquel Torres, a new service that monitors our performance nightly.
  • There will be ubuntu packages on PyPy's PPA made by Bartosz Skowron, however various troubles prevented us from having them as of now.

Known JIT problems (or why you should consider this beta software) are:

  • The only supported platform is 32bit x86 for now, we're looking for help with other platforms.
  • It is still memory-hungry. There is no limit on the amount of RAM that the assembler can consume; it is thus possible (although unlikely) that the assembler ends up using unreasonable amounts of memory.

If you want to try PyPy, go to the download page on our excellent new site and find the binary for your platform. If the binary does not work (e.g. on Linux, because of different versions of external .so dependencies), or if your platform is not supported, you can try building from the source.

The PyPy release team,
Armin Rigo, Maciej Fijalkowski and Amaury Forgeot d'Arc

Together with
Antonio Cuni, Carl Friedrich Bolz, Holger Krekel, Samuele Pedroni and many others.

21 comments:

Brian Slesinsky said...

The front page of the new PyPy site should include some of these caveats about it being beta software; it gives the wrong impression about PyPy's current status.

Peter said...

Congratulations! This is great news!

stuaxo said...

Is it possible to install distribute in this?

Martijn Faassen said...

Congrats! Now to port a lot of software onto this!

Anonymous said...

Congratulations! I've been looking forward to this.

Question: does PyPy have an API for creating native modules?

Maciej Fijalkowski said...

@Anonymous:

if you mean wrapping C libraries we recommend using ctypes.

Unknown said...

awesome! congratulations!

why is spambayes so slow? does it use regular expressions?

Isaac Gouy said...

Why is there a problem with nbody and itertools ?

pypy temporarily in the benchmarks game.

Benjamin Peterson said...

@horace: yes, regexes are probably the problem.

@Issac: combinations is a 2.6 feature, which we don't support.

Isaac Gouy said...

combinations is a 2.6 feature, which we don't support

Would anyone care to contribute a modified working nbody program to the benchmarks game? ;-)

Armin Rigo said...

@Isaac: we have nbody_modified in our benchmarks, source code here.

Unknown said...

Thanks for creating windows binaries! I waited long time for that...

René Dudfield said...

Congrats to all the pypy peoples!

Vitéz Gábor said...

Great work! Keep it up!

Shin Guey said...

I just tried the windows binary.

Oh damn, it is really FAST!!!

3x performance gain...
C:\work\bzr-proj>pypy script.py -t i2d -f longdata.txt
solve parallel
m = 1 total = 128
m = 2 total = 16384
m = 3 total = 2097152
Require M stage: 3
Time taken 00:00:05 (907ms)

C:\work\bzr-proj>python script.py -t i2d -f longdata.txt
solve parallel
m = 1 total = 128
m = 2 total = 16384
m = 3 total = 2097152
Require M stage: 3
Time taken 00:00:15 (093ms)

Shin Guey said...

Forgot about the memory usage, python consume ~4MB and pypy consume ~24MB. Pypy need 6x more memory, but I don't care about this in my script since the performance gain is significant.

I really want to know the pypy vs luajit, I think luajit should be much faster. I am in progress in converting my script to lua but that is painful, my knowledge on lua doesn't match with python.

Carl Friedrich Bolz-Tereick said...

@shin if you have a comparison to LuaJIT, I would be extremely interested to hear the results! I agree that LuaJIT will likely be faster though.

Anonymous said...

can't wait to test it out!

large file transfer said...

I really want to know the pypy vs luajit, I think luajit should be much faster. I am in progress in converting my script to lua but that is painful, my knowledge on lua doesn't match with python.

Caleb Hattingh said...

Thanks for windows binaries!

Anonymous said...

Congratulations !

Please mention in the download section that VC2005 redistributables are needed to run it on Win !