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:

  1. 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.

    ReplyDelete
  2. Congratulations! This is great news!

    ReplyDelete
  3. Is it possible to install distribute in this?

    ReplyDelete
  4. Congrats! Now to port a lot of software onto this!

    ReplyDelete
  5. Congratulations! I've been looking forward to this.

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

    ReplyDelete
  6. @Anonymous:

    if you mean wrapping C libraries we recommend using ctypes.

    ReplyDelete
  7. awesome! congratulations!

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

    ReplyDelete
  8. @horace: yes, regexes are probably the problem.

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

    ReplyDelete
  9. 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? ;-)

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

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

    ReplyDelete
  12. 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)

    ReplyDelete
  13. 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.

    ReplyDelete
  14. @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.

    ReplyDelete
  15. can't wait to test it out!

    ReplyDelete
  16. 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.

    ReplyDelete
  17. Congratulations !

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

    ReplyDelete

See also PyPy's IRC channel: #pypy at freenode.net, or the pypy-dev mailing list.
If the blog post is old, it is pointless to ask questions here about it---you're unlikely to get an answer.