Author: Richard Plangger <planri...@gmail.com> Branch: vmprof-0.4.8 Changeset: r91549:913967a77f88 Date: 2017-06-06 08:12 -0400 http://bitbucket.org/pypy/pypy/changeset/913967a77f88/
Log: merge default diff --git a/LICENSE b/LICENSE --- a/LICENSE +++ b/LICENSE @@ -39,11 +39,11 @@ Armin Rigo Maciej Fijalkowski - Carl Friedrich Bolz + Carl Friedrich Bolz-Tereick Amaury Forgeot d'Arc Antonio Cuni + Matti Picus Samuele Pedroni - Matti Picus Ronan Lamy Alex Gaynor Philip Jenvey @@ -101,28 +101,28 @@ Vincent Legoll Michael Foord Stephan Diehl + Stefano Rivera Stefan Schwarzer Tomek Meka Valentino Volonghi - Stefano Rivera Patrick Maupin Devin Jeanpierre Bob Ippolito Bruno Gola David Malcolm Jean-Paul Calderone + Squeaky Edd Barrett - Squeaky Timo Paulssen Marius Gedminas Alexandre Fayolle Simon Burton Nicolas Truessel Martin Matusiak + Laurence Tratt Wenzhu Man Konstantin Lopuhin John Witulski - Laurence Tratt Greg Price Ivan Sichmann Freitas Dario Bertini @@ -149,13 +149,13 @@ Stian Andreassen Wanja Saatkamp Mike Blume + Joannah Nanjekye Gerald Klix Oscar Nierstrasz Rami Chowdhury Stefan H. Muller - Joannah Nanjekye + Tim Felgentreff Eugene Oden - Tim Felgentreff Jeff Terrace Henry Mason Vasily Kuznetsov @@ -164,11 +164,11 @@ Dusty Phillips Lukas Renggli Guenter Jantzen + Jasper Schulz Ned Batchelder Amit Regmi Anton Gulenko Sergey Matyunin - Jasper Schulz Andrew Chambers Nicolas Chauvat Andrew Durdin @@ -183,6 +183,7 @@ Gintautas Miliauskas Lucian Branescu Mihaila anatoly techtonik + Dodan Mihai Karl Bartel Gabriel Lavoie Jared Grubb @@ -220,12 +221,14 @@ Vaibhav Sood Reuben Cummings Attila Gobi + Alecsandru Patrascu Christopher Pope Tristan Arthur Christian Tismer Dan Stromberg Carl Meyer Florin Papa + Jens-Uwe Mager Valentina Mukhamedzhanova Stefano Parmesan touilleMan @@ -264,7 +267,6 @@ Dan Buch Lene Wagner Tomo Cocoa - Alecsandru Patrascu David Lievens Neil Blakey-Milner Henrik Vendelbo @@ -303,6 +305,7 @@ Anna Katrina Dominguez Kim Jin Su Amber Brown + Nate Bragg Ben Darnell Juan Francisco Cantero Hurtado Godefroid Chappelle @@ -340,11 +343,13 @@ Jim Hunziker shoma hosaka Buck Golemon + Iraklis D. JohnDoe yrttyr Michael Chermside Anna Ravencroft remarkablerocket + Petre Vijiac Berker Peksag Christian Muirhead soareschen diff --git a/pypy/doc/conf.py b/pypy/doc/conf.py --- a/pypy/doc/conf.py +++ b/pypy/doc/conf.py @@ -59,16 +59,16 @@ # General information about the project. project = u'PyPy' -copyright = u'2016, The PyPy Project' +copyright = u'2017, The PyPy Project' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '5.4' +version = '5.8' # The full version, including alpha/beta/rc tags. -release = '5.4.0' +release = '5.8.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/pypy/doc/contributor.rst b/pypy/doc/contributor.rst --- a/pypy/doc/contributor.rst +++ b/pypy/doc/contributor.rst @@ -6,11 +6,11 @@ Armin Rigo Maciej Fijalkowski - Carl Friedrich Bolz + Carl Friedrich Bolz-Tereick Amaury Forgeot d'Arc Antonio Cuni + Matti Picus Samuele Pedroni - Matti Picus Ronan Lamy Alex Gaynor Philip Jenvey @@ -68,28 +68,28 @@ Vincent Legoll Michael Foord Stephan Diehl + Stefano Rivera Stefan Schwarzer Tomek Meka Valentino Volonghi - Stefano Rivera Patrick Maupin Devin Jeanpierre Bob Ippolito Bruno Gola David Malcolm Jean-Paul Calderone + Squeaky Edd Barrett - Squeaky Timo Paulssen Marius Gedminas Alexandre Fayolle Simon Burton Nicolas Truessel Martin Matusiak + Laurence Tratt Wenzhu Man Konstantin Lopuhin John Witulski - Laurence Tratt Greg Price Ivan Sichmann Freitas Dario Bertini @@ -116,13 +116,13 @@ Stian Andreassen Wanja Saatkamp Mike Blume + Joannah Nanjekye Gerald Klix Oscar Nierstrasz Rami Chowdhury Stefan H. Muller - Joannah Nanjekye + Tim Felgentreff Eugene Oden - Tim Felgentreff Jeff Terrace Henry Mason Vasily Kuznetsov @@ -131,11 +131,11 @@ Dusty Phillips Lukas Renggli Guenter Jantzen + Jasper Schulz Ned Batchelder Amit Regmi Anton Gulenko Sergey Matyunin - Jasper Schulz Andrew Chambers Nicolas Chauvat Andrew Durdin @@ -150,6 +150,7 @@ Gintautas Miliauskas Lucian Branescu Mihaila anatoly techtonik + Dodan Mihai Karl Bartel Gabriel Lavoie Jared Grubb @@ -187,12 +188,14 @@ Vaibhav Sood Reuben Cummings Attila Gobi + Alecsandru Patrascu Christopher Pope Tristan Arthur Christian Tismer Dan Stromberg Carl Meyer Florin Papa + Jens-Uwe Mager Valentina Mukhamedzhanova Stefano Parmesan touilleMan @@ -231,7 +234,6 @@ Dan Buch Lene Wagner Tomo Cocoa - Alecsandru Patrascu David Lievens Neil Blakey-Milner Henrik Vendelbo @@ -270,6 +272,7 @@ Anna Katrina Dominguez Kim Jin Su Amber Brown + Nate Bragg Ben Darnell Juan Francisco Cantero Hurtado Godefroid Chappelle @@ -307,11 +310,13 @@ Jim Hunziker shoma hosaka Buck Golemon + Iraklis D. JohnDoe yrttyr Michael Chermside Anna Ravencroft remarkablerocket + Petre Vijiac Berker Peksag Christian Muirhead soareschen diff --git a/pypy/doc/discussion/finalizer-order.rst b/pypy/doc/discussion/finalizer-order.rst --- a/pypy/doc/discussion/finalizer-order.rst +++ b/pypy/doc/discussion/finalizer-order.rst @@ -60,7 +60,7 @@ The interface for full finalizers is made with PyPy in mind, but should be generally useful. -The idea is that you subclass the ``rgc.FinalizerQueue`` class:: +The idea is that you subclass the ``rgc.FinalizerQueue`` class: * You must give a class-level attribute ``base_class``, which is the base class of all instances with a finalizer. (If you need diff --git a/pypy/doc/discussion/rawrefcount.rst b/pypy/doc/discussion/rawrefcount.rst --- a/pypy/doc/discussion/rawrefcount.rst +++ b/pypy/doc/discussion/rawrefcount.rst @@ -68,10 +68,12 @@ and O = list of links created with rawrefcount.create_link_pyobj(). The PyPy objects in the list O are all W_CPyExtPlaceHolderObject: all the data is in the PyObjects, and all outsite references (if any) are -in C, as "PyObject *" fields. +in C, as ``PyObject *`` fields. So, during the collection we do this about P links: +.. code-block:: python + for (p, ob) in P: if ob->ob_refcnt != REFCNT_FROM_PYPY and ob->ob_refcnt != REFCNT_FROM_PYPY_LIGHT: @@ -80,6 +82,8 @@ At the end of the collection, the P and O links are both handled like this: +.. code-block:: python + for (p, ob) in P + O: if p is not surviving: # even if 'ob' might be surviving unlink p and ob diff --git a/pypy/doc/how-to-release.rst b/pypy/doc/how-to-release.rst --- a/pypy/doc/how-to-release.rst +++ b/pypy/doc/how-to-release.rst @@ -5,8 +5,8 @@ ++++++++++++++ We try to create a stable release a few times a year. These are released on -a branch named like release-2.x or release-4.x, and each release is tagged, -for instance release-4.0.1. +a branch named like release-pypy3.5-v2.x or release-pypy3.5-v4.x, and each +release is tagged, for instance release-pypy3.5-v4.0.1. After release, inevitably there are bug fixes. It is the responsibility of the commiter who fixes a bug to make sure this fix is on the release branch, @@ -33,7 +33,7 @@ * If needed, make a release branch * Bump the pypy version number in module/sys/version.py and in - module/cpyext/include/patchlevel.h and . The branch + module/cpyext/include/patchlevel.h and in doc/conf.py. The branch will capture the revision number of this change for the release. Some of the next updates may be done before or after branching; make diff --git a/pypy/doc/index-of-whatsnew.rst b/pypy/doc/index-of-whatsnew.rst --- a/pypy/doc/index-of-whatsnew.rst +++ b/pypy/doc/index-of-whatsnew.rst @@ -30,12 +30,22 @@ whatsnew-2.0.0-beta1.rst whatsnew-1.9.rst +CPython 3.5 compatible versions +------------------------------- + +.. toctree:: + + whatsnew-pypy3-head.rst + whatsnew-pypy3-5.8.0.rst + whatsnew-pypy3-5.7.0.rst + CPython 3.3 compatible versions ------------------------------- .. toctree:: whatsnew-pypy3-5.5.0.rst + whatsnew-pypy3-5.1.1-alpha1.rst CPython 3.2 compatible versions ------------------------------- diff --git a/pypy/doc/install.rst b/pypy/doc/install.rst --- a/pypy/doc/install.rst +++ b/pypy/doc/install.rst @@ -12,6 +12,7 @@ and using pip. .. _prebuilt-pypy: + Download a pre-built PyPy ~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/pypy/doc/objspace.rst b/pypy/doc/objspace.rst --- a/pypy/doc/objspace.rst +++ b/pypy/doc/objspace.rst @@ -250,12 +250,12 @@ .. py:function:: newunicode(ustr) Creates a Unicode string from an rpython unicode string. - This method may disappear soon and be replaced by :py:function:`newutf8()`. + This method may disappear soon and be replaced by :py:function::`newutf8`. .. py:function:: newutf8(bytestr) Creates a Unicode string from an rpython byte string, decoded as - "utf-8-nosg". On PyPy3 it is the same as :py:function:`newtext()`. + "utf-8-nosg". On PyPy3 it is the same as :py:function::`newtext`. Many more space operations can be found in `pypy/interpeter/baseobjspace.py` and `pypy/objspace/std/objspace.py`. @@ -302,9 +302,9 @@ .. py:function:: unicode_w(w_x) - Takes an application level :py:class:`unicode` and return an + Takes an application level :py:class::`unicode` and return an interpreter-level unicode string. This method may disappear soon and - be replaced by :py:function:`text_w()`. + be replaced by :py:function::`text_w`. .. py:function:: float_w(w_x) diff --git a/pypy/doc/release-pypy2.7-v5.4.0.rst b/pypy/doc/release-pypy2.7-v5.4.0.rst --- a/pypy/doc/release-pypy2.7-v5.4.0.rst +++ b/pypy/doc/release-pypy2.7-v5.4.0.rst @@ -171,7 +171,7 @@ * Performance improvements: * Add a before_call()-like equivalent before a few operations like - `malloc_nursery`, to move values from registers into other registers + `malloc_nursery`, to move values from registers into other registers instead of to the stack. * More tightly pack the stack when calling with `release gil` diff --git a/pypy/doc/release-pypy2.7-v5.6.0.rst b/pypy/doc/release-pypy2.7-v5.6.0.rst --- a/pypy/doc/release-pypy2.7-v5.6.0.rst +++ b/pypy/doc/release-pypy2.7-v5.6.0.rst @@ -140,7 +140,7 @@ preamble * In JIT residual calls, if the called function starts with a fast-path like ``if x.foo != 0: return x.foo``, then inline the check before doing the - ``CALL``. + ``CALL``. * Ensure ``make_inputargs`` fails properly when given arguments with type information * Makes ``optimiseopt`` iterative instead of recursive so it can be reasoned diff --git a/pypy/doc/release-v5.8.0.rst b/pypy/doc/release-v5.8.0.rst --- a/pypy/doc/release-v5.8.0.rst +++ b/pypy/doc/release-v5.8.0.rst @@ -3,15 +3,17 @@ ===================================== The PyPy team is proud to release both PyPy2.7 v5.8 (an interpreter supporting -Python v2.7 syntax), and a beta-quality PyPy3.5 v5.8 (an interpreter for Python -v3.5 syntax). The two releases are both based on much the same codebase, thus +Python 2.7 syntax), and a beta-quality PyPy3.5 v5.8 (an interpreter for Python +3.5 syntax). The two releases are both based on much the same codebase, thus the dual release. Note that PyPy3.5 supports Linux 64bit only for now. This new PyPy2.7 release includes the upstream stdlib version 2.7.13, and PyPy3.5 includes the upstream stdlib version 3.5.3. -This release enables `profile guided optimization` of the base interpreter, -which may make unjitted code run faster. +This release adds (but disables by default) link-time optimization and +`profile guided optimization`_ of the base interpreter, which may make +unjitted code run faster. To use these, translate with appropriate +`options`_. Be aware of `[1]`_, though. Please let us know if your use case is slow, we have ideas how to make things faster but need real-world examples (not micro-benchmarks) of problematic code. @@ -43,12 +45,14 @@ with making RPython's JIT even better. .. _`profile guided optimization`: https://pythonfiles.wordpress.com/2017/05/12/enabling-profile-guided-optimizations-for-pypy +.. _`[1]`: https://bitbucket.org/pypy/pypy/issues/2572/link-time-optimization-lto-disabled .. _CFFI: https://cffi.readthedocs.io/en/latest/whatsnew.html .. _grant: https://morepypy.blogspot.com/2016/08/pypy-gets-funding-from-mozilla-for.html .. _`PyPy`: index.html .. _`RPython`: https://rpython.readthedocs.org .. _`modules`: project-ideas.html#make-more-python-modules-pypy-friendly .. _`help`: project-ideas.html +.. _`options`: config/commandline.html#general-translation-options .. _`these benchmarks show`: https://morepypy.blogspot.com/2017/03/async-http-benchmarks-on-pypy3.html What is PyPy? @@ -148,7 +152,7 @@ accepted in a few more places, e.g. in compile() -.. _here: http://rpython.readthedocs.io/en/latest/cpython_differences.html +.. _here: cpython_differences.html Highlights of the PyPy3.5 release (since 5.7 beta released March 2017) ====================================================================== diff --git a/pypy/doc/tool/makecontributor.py b/pypy/doc/tool/makecontributor.py --- a/pypy/doc/tool/makecontributor.py +++ b/pypy/doc/tool/makecontributor.py @@ -18,8 +18,9 @@ 'Antonio Cuni': ['antocuni', 'anto'], 'Armin Rigo': ['arigo', 'arfigo', 'armin', 'arigato'], 'Maciej Fijalkowski': ['fijal'], - 'Carl Friedrich Bolz': ['cfbolz', 'cf'], + 'Carl Friedrich Bolz-Tereick': ['Carl Friedrich Bolz', 'cfbolz', 'cf'], 'Samuele Pedroni': ['pedronis', 'samuele', 'samule'], + 'Richard Plangger':['planrich'], 'Michael Hudson': ['mwh'], 'Holger Krekel': ['hpk', 'holger krekel', 'holger', 'hufpk'], "Amaury Forgeot d'Arc": ['afa'], @@ -67,7 +68,7 @@ 'Edd Barrett': ['edd'], 'Manuel Jacob': ['mjacob'], 'Rami Chowdhury': ['necaris'], - 'Stanislaw Halik':['w31rd0'], + 'Stanislaw Halik': ['Stanislaw Halik', 'w31rd0'], 'Wenzhu Man':['wenzhu man', 'wenzhuman'], 'Anton Gulenko':['anton gulenko', 'anton_gulenko'], 'Richard Lancaster':['richardlancaster'], @@ -78,7 +79,8 @@ 'Jasper Schulz':['Jasper.Schulz', 'jbs'], 'Aaron Gallagher':['"Aaron Gallagher'], 'Yasir Suhail':['yasirs'], - 'Squeaky', ['squeaky'], + 'Squeaky': ['squeaky'], + "Amaury Forgeot d'Arc": ['amaur...@gmail.com'], } alias_map = {} diff --git a/pypy/doc/whatsnew-2.6.1.rst b/pypy/doc/whatsnew-2.6.1.rst --- a/pypy/doc/whatsnew-2.6.1.rst +++ b/pypy/doc/whatsnew-2.6.1.rst @@ -6,6 +6,7 @@ .. startrev: 91904d5c5188 .. branch: use_min_scalar + Correctly resolve the output dtype of ufunc(array, scalar) calls. .. branch: stdlib-2.7.10 @@ -15,6 +16,7 @@ .. branch: issue2062 .. branch: disable-unroll-for-short-loops + The JIT no longer performs loop unrolling if the loop compiles to too much code. .. branch: run-create_cffi_imports @@ -32,9 +34,11 @@ ``lst[0]`` is still *not* the float ``42.0`` but the integer ``42``.) .. branch: cffi-callback-onerror + Part of cffi 1.2. .. branch: cffi-new-allocator + Part of cffi 1.2. .. branch: unicode-dtype diff --git a/pypy/doc/whatsnew-4.0.0.rst b/pypy/doc/whatsnew-4.0.0.rst --- a/pypy/doc/whatsnew-4.0.0.rst +++ b/pypy/doc/whatsnew-4.0.0.rst @@ -6,23 +6,28 @@ .. startrev: 3a8f5481dab4 .. branch: keys_with_hash + Improve the performance of ``dict.update()`` and a bunch of methods from sets, by reusing the hash value stored in one dict when inspecting or changing another dict with that key. .. branch: optresult-unroll + A major refactoring of the ``ResOperations`` that kills Box. Also rewrote unrolling to enable future enhancements. Should improve warmup time by 20% or so. .. branch: optimize-cond-call + Optimize common sequences of operations like ``int_lt/cond_call`` in the JIT backends .. branch: missing_openssl_include + Fix for missing headers in OpenBSD, already applied in downstream ports .. branch: gc-more-incremental + Remove a source of non-incremental-ness in the GC: now ``external_malloc()`` no longer runs ``gc_step_until()`` any more. If there is a currently-running major collection, we do only so many steps @@ -32,11 +37,13 @@ keep adding up between them. .. branch: remember-tracing-counts + Reenable jithooks .. branch: detect_egd2 .. branch: shadowstack-no-move-2 + Issue #2141: fix a crash on Windows and OS/X and ARM when running at least 20 threads. @@ -55,6 +62,7 @@ floats, cf. issue #2148. .. branch: cffi-stdcall + Win32: support ``__stdcall`` in CFFI. .. branch: callfamily @@ -93,6 +101,7 @@ .. branch: osx-libffi .. branch: lazy-fast2locals -improve the performance of simple trace functions by lazily calling + +Improve the performance of simple trace functions by lazily calling ``fast2locals`` and ``locals2fast`` only if ``f_locals`` is actually accessed. diff --git a/pypy/doc/whatsnew-5.0.0.rst b/pypy/doc/whatsnew-5.0.0.rst --- a/pypy/doc/whatsnew-5.0.0.rst +++ b/pypy/doc/whatsnew-5.0.0.rst @@ -192,6 +192,7 @@ Fix boolean-array indexing in micronumpy .. branch: numpy_partition + Support ndarray.partition() as an app-level function numpy.core._partition_use, provided as a cffi wrapper to upstream's implementation in the pypy/numpy repo diff --git a/pypy/doc/whatsnew-pypy2-5.3.0.rst b/pypy/doc/whatsnew-pypy2-5.3.0.rst --- a/pypy/doc/whatsnew-pypy2-5.3.0.rst +++ b/pypy/doc/whatsnew-pypy2-5.3.0.rst @@ -29,6 +29,7 @@ upstream numpy via cpyext, so we created (yet another) fork of numpy at github.com/pypy/numpy with the needed changes. Among the significant changes to cpyext: + - allow c-snippet tests to be run with -A so we can verify we are compatible - fix many edge cases exposed by fixing tests to run with -A - issequence() logic matches cpython diff --git a/pypy/doc/whatsnew-pypy2-5.4.0.rst b/pypy/doc/whatsnew-pypy2-5.4.0.rst --- a/pypy/doc/whatsnew-pypy2-5.4.0.rst +++ b/pypy/doc/whatsnew-pypy2-5.4.0.rst @@ -6,10 +6,12 @@ .. startrev: 873218a739f1 .. 418b05f95db5 + Improve CPython compatibility for ``is``. Now code like ``if x is ():`` works the same way as it does on CPython. See http://pypy.readthedocs.io/en/latest/cpython_differences.html#object-identity-of-primitive-values-is-and-id . .. pull request #455 + Add sys.{get,set}dlopenflags, for cpyext extensions. .. branch: fix-gen-dfa @@ -36,9 +38,11 @@ compatible. .. branch: pyfile-tell + Sync w_file with the c-level FILE* before returning FILE* in PyFile_AsFile .. branch: rw-PyString_AS_STRING + Allow rw access to the char* returned from PyString_AS_STRING, also refactor PyStringObject to look like cpython's and allow subclassing PyString_Type and PyUnicode_Type diff --git a/pypy/doc/whatsnew-pypy2-5.6.0.rst b/pypy/doc/whatsnew-pypy2-5.6.0.rst --- a/pypy/doc/whatsnew-pypy2-5.6.0.rst +++ b/pypy/doc/whatsnew-pypy2-5.6.0.rst @@ -6,18 +6,22 @@ .. startrev: 522736f816dc .. branch: rpython-resync + Backport rpython changes made directly on the py3k and py3.5 branches. .. branch: buffer-interface + Implement PyObject_GetBuffer, PyMemoryView_GET_BUFFER, and handles memoryviews in numpypy .. branch: force-virtual-state + Improve merging of virtual states in the JIT in order to avoid jumping to the preamble. Accomplished by allocating virtual objects where non-virtuals are expected. .. branch: conditional_call_value_3 + JIT residual calls: if the called function starts with a fast-path like "if x.foo != 0: return x.foo", then inline the check before doing the CALL. For now, string hashing is about the only case. @@ -58,6 +62,7 @@ .. fb6bb835369e + Change the ``timeit`` module: it now prints the average time and the standard deviation over 7 runs by default, instead of the minimum. The minimum is often misleading. @@ -69,9 +74,6 @@ .. branch: Tiberiumk/fix-2412-1476011166874 .. branch: redirect-assembler-jitlog - - - .. branch: stdlib-2.7.12 Update stdlib to version 2.7.12 diff --git a/pypy/doc/whatsnew-pypy3-5.8.0.rst b/pypy/doc/whatsnew-pypy3-5.8.0.rst --- a/pypy/doc/whatsnew-pypy3-5.8.0.rst +++ b/pypy/doc/whatsnew-pypy3-5.8.0.rst @@ -6,6 +6,7 @@ .. startrev: afbf09453369 .. branch: mtest + Use "<python> -m test" to run the CPython test suite, as documented by CPython, instead of our outdated regrverbose.py script. _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit