[pypy-commit] pypy default: rework, call the release "Easier Than Ever" for want of a better name
mattip
noreply at buildbot.pypy.org
Mon Apr 28 21:49:43 CEST 2014
Author: Matti Picus <matti.picus at gmail.com>
Branch:
Changeset: r71051:8bc78794a75b
Date: 2014-04-28 22:49 +0300
http://bitbucket.org/pypy/pypy/changeset/8bc78794a75b/
Log: rework, call the release "Easier Than Ever" for want of a better
name
diff --git a/pypy/doc/release-2.3.0.rst b/pypy/doc/release-2.3.0.rst
--- a/pypy/doc/release-2.3.0.rst
+++ b/pypy/doc/release-2.3.0.rst
@@ -1,11 +1,17 @@
=======================================
-PyPy 2.3 - XXXX TODO
+PyPy 2.3 - Easier Than Ever
=======================================
We're pleased to announce PyPy 2.3, which targets version 2.7.6 of the Python
language. This release updates the stdlib from 2.7.3, jumping directly to 2.7.6.
-This release also contains several bugfixes and performance improvements.
+This release also contains several bugfixes and performance improvements,
+many generated by real users finding corner cases our `TDD`_ methods missed.
+`CFFI`_ has made it easier than ever to use existing C code with both cpython
+and PyPy, easing the transition for packages like `cryptography`_, `Pillow`_
+(Python Imaging Library [Fork]), a basic port of `pygame-cffi`_, and others.
+
+PyPy can now be embedded in a hosting application, for instance inside `uWSGI`_
You can download the PyPy 2.3 release here:
@@ -17,72 +23,112 @@
Please consider donating more so we can finish those projects! The three
projects are:
-* Py3k (supporting Python 3.x): the release PyPy3 2.2 is imminent.
+* `Py3k`_ (supporting Python 3.x): the release PyPy3 2.2 is imminent.
-* STM (software transactional memory): a preview will be released very soon,
- as soon as we fix a few bugs
+* `STM`_ (software transactional memory): a preview will be released very soon,
+ once we fix a few bugs
-* NumPy: the work done is included in the PyPy 2.2 release. More details below.
+* `NumPy`_ the work done is included in the PyPy 2.2 release. More details below.
-.. _`Raspberry Pi Foundation`: http://www.raspberrypi.org
+_`Py3k`: http://pypy.org/py3donate.html
+_`STM`: http://pypy.org/tmdonate2.html
+_ `Numpy`: http://pypy.org/numpydonate.html
+_`TDD`: http://doc.pypy.org/en/latest/how-to-contribute.html
+_`CFFI`: http://cffi.readthedocs.org
+_`cryptography`: https://cryptography.io
+_`Pillow`: https://pypi.python.org/pypi/Pillow/2.4.0
+_`pygame-cffi`: https://github.com/CTPUG/pygame_cffi
+_`uWSGI`: http://uwsgi-docs.readthedocs.org/en/latest/PyPy.html
What is PyPy?
=============
PyPy is a very compliant Python interpreter, almost a drop-in replacement for
-CPython 2.7. It's fast (`pypy 2.2 and cpython 2.7.2`_ performance comparison)
+CPython 2.7. It's fast (`pypy 2.2 and cpython 2.7.2`_ performance comparison;
+note that the latest cpython is not faster than cpython 2.7.2)
due to its integrated tracing JIT compiler.
-This release supports x86 machines running Linux 32/64, Mac OS X 64, Windows
-32, or ARM (ARMv6 or ARMv7, with VFPv3).
+This release supports x86 machines running Linux 32/64, Mac OS X 64, Windows,
+and OpenBSD,
+as well as newer ARM hardware (ARMv6 or ARMv7, with VFPv3) running Linux.
-Work on the native Windows 64 is still stalling, we would welcome a volunteer
-to handle that.
+While we support 32 bit python on Windows, work on the native Windows 64
+bit python is still stalling, we would welcome a volunteer
+to `handle that`_.
-.. _`pypy 2.2 and cpython 2.7.2`: http://speed.pypy.org
+_`pypy 2.2 and cpython 2.7.2`: http://speed.pypy.org
+_`handle that`: http://doc.pypy.org/en/latest/windows.html#what-is-missing-for-a-full-64-bit-translation
Highlights
==========
-* Our Garbage Collector is now "incremental". It should avoid almost
- all pauses due to a major collection taking place. Previously, it
- would pause the program (rarely) to walk all live objects, which
- could take arbitrarily long if your process is using a whole lot of
- RAM. Now the same work is done in steps. This should make PyPy
- more responsive, e.g. in games. There are still other pauses, from
- the GC and the JIT, but they should be on the order of 5
- milliseconds each.
+Bugfixes
+--------
-* The JIT counters for hot code were never reset, which meant that a
- process running for long enough would eventually JIT-compile more
- and more rarely executed code. Not only is it useless to compile
- such code, but as more compiled code means more memory used, this
- gives the impression of a memory leak. This has been tentatively
- fixed by decreasing the counters from time to time.
+Many issues were cleaned up after being reported by users to https://bugs.pypy.org (ignore the bad SSL certificate) or on IRC at #pypy. Note that we consider
+performance slowdowns as bugs.
-* NumPy has been split: now PyPy only contains the core module, called
- ``_numpypy``. The ``numpy`` module itself has been moved to
- ``https://bitbucket.org/pypy/numpy`` and ``numpypy`` disappeared.
- You need to install NumPy separately with a virtualenv:
+* The ARM port no longer crashes on unaligned memory access to floats and doubles,
+ and singlefloats are supported in the JIT.
+
+* Generators are faster since they now skip unecessary cleanup
+
+* A first time contributor simplified JIT traces by adding integer bound
+ propagation in indexing and logical operations.
+
+* Optimize consecutive dictionary lookups of the same key in a chain
+
+* Our extensive pre-translation test suite now runs nightly on more platforms
+
+* Fix issues with reimporting builtin modules
+
+* Fix a rpython bug with loop-unrolling that appeared in the `HippyVM`_ PHP port
+
+`HippyVM`_: http://www.hippyvm.com
+
+New Platforms and Features
+--------------------------
+
+* Support for OpenBSD
+
+* Code cleanup: we continue to prune out old and unused code, and to refactor
+ large parts of the codebase. We have sepearated rpython from the PyPy python
+ interpreter, and rpython is seeing use in other dynamic language projects.
+
+* Support for precompiled headers in the build process for MSVC
+
+* Support for objects with __int__ and __float__ methods
+
+* Tweak support of errno in cpyext (the PyPy implemenation of the capi)
+
+
+Numpy
+-----
+Numpy support has been split into a builtin ``_numpy`` module and a
+fork of the numpy code base adapted to pypy at
+ ``https://bitbucket.org/pypy/numpy``.
+You need to install NumPy separately with a virtualenv:
``pip install git+https://bitbucket.org/pypy/numpy.git``;
or directly:
``git clone https://bitbucket.org/pypy/numpy.git``;
``cd numpy``; ``pypy setup.py install``.
-* non-inlined calls have less overhead
+* NumPy support has been improved, many failures in indexing, dtypes,
+ and scalars were corrected. We are slowly approaching our goal of passing
+ the numpy test suite. We still do not support object or unicode ndarrays.
-* Things that use ``sys.set_trace`` are now JITted (like coverage)
+* speed of iteration in dot() is now within 1.5x of the numpy c
+ implementation (without BLAS acceleration). Since the same array
+ iterator is used throughout the ``_numpy`` module, speed increases should
+ be apparent in all Numpy functionality.
-* JSON decoding is now very fast (JSON encoding was already very fast)
+* Most of the core functionality of nditer has been implemented.
-* various buffer copying methods experience speedups (like list-of-ints to
- ``int[]`` buffer from cffi)
+* A cffi-based ``numpy.random`` module is available as a branch in the numpy
+ repository, it will be merged soon after this release.
-* We finally wrote (hopefully) all the missing ``os.xxx()`` functions,
- including ``os.startfile()`` on Windows and a handful of rare ones
- on Posix.
+* enhancements to the PyPy JIT were made to support virtualizing the raw_store/raw_load memory operations used in numpy arrays. Further work remains here in virtualizing the alloc_raw_storage when possible. This will allow scalars to have storages but still be virtualized when possible in loops.
-* numpy has a rudimentary C API that cooperates with ``cpyext``
+Cheers
+The PyPy Team
-Cheers,
-Armin Rigo and Maciej Fijalkowski
More information about the pypy-commit
mailing list