/pypy/doc/release-1.6.0.rst

https://github.com/ssadler/pypy · ReStructuredText · 95 lines · 68 code · 27 blank · 0 comment · 0 complexity · 0e2fdfeeb39c19e247a70aff3457f2ff MD5 · raw file

  1. ========================
  2. PyPy 1.6 - kickass panda
  3. ========================
  4. We're pleased to announce the 1.6 release of PyPy. This release brings a lot
  5. of bugfixes and performance improvements over 1.5, and improves support for
  6. Windows 32bit and OS X 64bit. This version fully implements Python 2.7.1 and
  7. has beta level support for loading CPython C extensions. You can download it
  8. here:
  9. http://pypy.org/download.html
  10. What is PyPy?
  11. =============
  12. PyPy is a very compliant Python interpreter, almost a drop-in replacement for
  13. CPython 2.7.1. It's fast (`pypy 1.5 and cpython 2.6.2`_ performance comparison)
  14. due to its integrated tracing JIT compiler.
  15. This release supports x86 machines running Linux 32/64 or Mac OS X. Windows 32
  16. is beta (it roughly works but a lot of small issues have not been fixed so
  17. far). Windows 64 is not yet supported.
  18. The main topics of this release are speed and stability: on average on
  19. our benchmark suite, PyPy 1.6 is between **20% and 30%** faster than PyPy 1.5,
  20. which was already much faster than CPython on our set of benchmarks.
  21. The speed improvements have been made possible by optimizing many of the
  22. layers which compose PyPy. In particular, we improved: the Garbage Collector,
  23. the JIT warmup time, the optimizations performed by the JIT, the quality of
  24. the generated machine code and the implementation of our Python interpreter.
  25. .. _`pypy 1.5 and cpython 2.6.2`: http://speed.pypy.org
  26. Highlights
  27. ==========
  28. * Numerous performance improvements, overall giving considerable speedups:
  29. - better GC behavior when dealing with very large objects and arrays
  30. - **fast ctypes:** now calls to ctypes functions are seen and optimized
  31. by the JIT, and they are up to 60 times faster than PyPy 1.5 and 10 times
  32. faster than CPython
  33. - improved generators(1): simple generators now are inlined into the caller
  34. loop, making performance up to 3.5 times faster than PyPy 1.5.
  35. - improved generators(2): thanks to other optimizations, even generators
  36. that are not inlined are between 10% and 20% faster than PyPy 1.5.
  37. - faster warmup time for the JIT
  38. - JIT support for single floats (e.g., for ``array('f')``)
  39. - optimized dictionaries: the internal representation of dictionaries is now
  40. dynamically selected depending on the type of stored objects, resulting in
  41. faster code and smaller memory footprint. For example, dictionaries whose
  42. keys are all strings, or all integers. Other dictionaries are also smaller
  43. due to bugfixes.
  44. * JitViewer: this is the first official release which includes the JitViewer,
  45. a web-based tool which helps you to see which parts of your Python code have
  46. been compiled by the JIT, down until the assembler. The `jitviewer`_ 0.1 has
  47. already been release and works well with PyPy 1.6.
  48. * The CPython extension module API has been improved and now supports many
  49. more extensions. For information on which one are supported, please refer to
  50. our `compatibility wiki`_.
  51. * Multibyte encoding support: this was of of the last areas in which we were
  52. still behind CPython, but now we fully support them.
  53. * Preliminary support for NumPy: this release includes a preview of a very
  54. fast NumPy module integrated with the PyPy JIT. Unfortunately, this does
  55. not mean that you can expect to take an existing NumPy program and run it on
  56. PyPy, because the module is still unfinished and supports only some of the
  57. numpy API. However, barring some details, what works should be
  58. blazingly fast :-)
  59. * Bugfixes: since the 1.5 release we fixed 53 bugs in our `bug tracker`_, not
  60. counting the numerous bugs that were found and reported through other
  61. channels than the bug tracker.
  62. Cheers,
  63. Hakan Ardo, Carl Friedrich Bolz, Laura Creighton, Antonio Cuni,
  64. Maciej Fijalkowski, Amaury Forgeot d'Arc, Alex Gaynor,
  65. Armin Rigo and the PyPy team
  66. .. _`jitviewer`: http://morepypy.blogspot.com/2011/08/visualization-of-jitted-code.html
  67. .. _`bug tracker`: https://bugs.pypy.org
  68. .. _`compatibility wiki`: https://bitbucket.org/pypy/compatibility/wiki/Home