Over a million developers have joined DZone.

PyPy 1.8 Improves Performance, Maintains Business As Usual

DZone 's Guide to

PyPy 1.8 Improves Performance, Maintains Business As Usual

· Web Dev Zone ·
Free Resource

PyPy 1.8 has arrived, and brings with it a number of bug fixes and performance and memory improvements over the previous release, including support for x86 machines running Linux 32/64 or Windows 32.  While Windows 64 is not currently supported, it is planned for a future release.

The main highlight of the release is the introduction of list strategies which makes homogenous lists more efficient both in terms of performance and memory…Now lists that contain only ints or only floats should be as efficient as storing them in a binary-packed array.

-- PyPy Status Blog

Other release highlights include:

  • Improved JIT Performance in List Strategies
  • Special Strategies for Unicode and Sting Lists
  • Faster Python Constructs
  • Improved CPython Compatibility
  • Ability to Hook Into the JIT Process from a Python Program
  • Upgraded Python Compatibility (from 2.7.1 to 2.7.2)

PyPy 1.8 also features significant progress in the Numpy effort:

  • multi dimensional arrays
  • various sizes of types
  • a lot of ufuncs
  • a lot of other minor changes

Right now the numpy module is available under both numpy and numpypy names. However, because it's incomplete, you have to import numpypy first before doing any imports from numpy.

-- PyPy Status Blog

There's also a list of ongoing work that's should be available in future releases:

  • Non-x86 backends for the JIT: ARMv7 (almost ready) and PPC64 (in progress)
  • Specialized type instances - allocate instances as efficient as C structs, including type specialization
  • More numpy work
  • Since the last release there was a significant breakthrough in PyPy's fundraising. We now have enough funds to work on first stages of numpypy and py3k. We would like to thank again to everyone who donated.



Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}