[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