Commit 8d87b355 authored by Matti Picus's avatar Matti Picus
Browse files

start 7.3.4 release: update versions and contributors, create release note

parent cf836b2ffbb8
Pipeline #19357 passed with stage
in 5 minutes and 34 seconds
......@@ -99,12 +99,14 @@ copyrighted by one or more of the following people and organizations:
Alex Martelli
Spenser Bauman
Michal Bendowski
nulano
Jan de Mooij
Stefan Beyer
Tyler Wade
Vincent Legoll
Michael Foord
Stephan Diehl
Simon Cross
Jean-Paul Calderone
Stefan Schwarzer
Tomek Meka
......@@ -121,6 +123,7 @@ copyrighted by one or more of the following people and organizations:
Edd Barrett
Marius Gedminas
Laurence Tratt
Batuhan Taskaya
Alexandre Fayolle
Nicolas Truessel
Simon Burton
......@@ -129,12 +132,11 @@ copyrighted by one or more of the following people and organizations:
Wenzhu Man
John Witulski
Jeremy Thurgood
Julian Berman
Dario Bertini
Greg Price
Ivan Sichmann Freitas
Simon Cross
Mark Pearse
Julian Berman
Andreas Stührk
Tobias Pape
Jean-Philippe St. Pierre
......@@ -154,6 +156,7 @@ copyrighted by one or more of the following people and organizations:
Joannah Nanjekye
Georg Brandl
quejebo
muke101
Bert Freudenberg
Gerald Klix
Wanja Saatkamp
......@@ -232,6 +235,7 @@ copyrighted by one or more of the following people and organizations:
Faye Zhao
Pauli Virtanen
Mike Pavone
Ricky Zhou
Alan McIntyre
Alexander Sedov
Alex Perry
......@@ -258,6 +262,7 @@ copyrighted by one or more of the following people and organizations:
Anthony Sottile
Arianna Avanzini
Matt Billenstein
Sebastian Berg
Jacek Generowicz
Sylvain Thenault
Alejandro J. Cura
......@@ -359,6 +364,9 @@ copyrighted by one or more of the following people and organizations:
Bolutife Ogunsola
ashwinahuja
cjmcdonald@google.com
Alex Orange
alexprengere
Dennis Sweeney
Anna Ravencroft
Dinu Gherman
Michael Chermside
......@@ -460,6 +468,8 @@ copyrighted by one or more of the following people and organizations:
Henri Tuhola
shaolo1
Chris AtLee
Christoph Reiter
Chris Burr
Heinrich-Heine University, Germany
Open End AB (formerly AB Strakt), Sweden
......
......@@ -89,7 +89,7 @@ copyright = u'2021, The PyPy Project'
# The short X.Y version.
version = '7.3'
# The full version, including alpha/beta/rc tags.
release = '7.3.4'
release = '7.3.5'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
......
......@@ -65,12 +65,14 @@ Contributors
Alex Martelli
Spenser Bauman
Michal Bendowski
nulano
Jan de Mooij
Stefan Beyer
Tyler Wade
Vincent Legoll
Michael Foord
Stephan Diehl
Simon Cross
Jean-Paul Calderone
Stefan Schwarzer
Tomek Meka
......@@ -79,7 +81,6 @@ Contributors
Devin Jeanpierre
Bob Ippolito
Bruno Gola
nulano
David Malcolm
Yannick Jadoul
Squeaky
......@@ -87,6 +88,7 @@ Contributors
Edd Barrett
Marius Gedminas
Laurence Tratt
Batuhan Taskaya
Alexandre Fayolle
Nicolas Truessel
Simon Burton
......@@ -95,12 +97,11 @@ Contributors
Wenzhu Man
John Witulski
Jeremy Thurgood
Julian Berman
Dario Bertini
Greg Price
Ivan Sichmann Freitas
Simon Cross
Mark Pearse
Julian Berman
Andreas Stührk
Tobias Pape
Jean-Philippe St. Pierre
......@@ -120,6 +121,7 @@ Contributors
Joannah Nanjekye
Georg Brandl
quejebo
muke101
Bert Freudenberg
Gerald Klix
Wanja Saatkamp
......@@ -198,6 +200,7 @@ Contributors
Faye Zhao
Pauli Virtanen
Mike Pavone
Ricky Zhou
Alan McIntyre
Alexander Sedov
Alex Perry
......@@ -224,6 +227,7 @@ Contributors
Anthony Sottile
Arianna Avanzini
Matt Billenstein
Sebastian Berg
Jacek Generowicz
Sylvain Thenault
Alejandro J. Cura
......@@ -325,6 +329,9 @@ Contributors
Bolutife Ogunsola
ashwinahuja
cjmcdonald@google.com
Alex Orange
alexprengere
Dennis Sweeney
Anna Ravencroft
Dinu Gherman
Michael Chermside
......@@ -426,3 +433,5 @@ Contributors
Henri Tuhola
shaolo1
Chris AtLee
Christoph Reiter
Chris Burr
===================================
PyPy v7.3.4: release of 2.7 and 3.7
===================================
.. note::
This is a pre-release announcement. When the release actually happens, it
will be announced on the `PyPy blog`_
.. _`PyPy blog`: https://pypy.org/blog
..
Changelog up to commit d414fb8186a7
-The PyPy team is proud to release the version 7.3.4 of PyPy, which includes
two different interpreters:
- PyPy2.7, which is an interpreter supporting the syntax and the features of
Python 2.7 including the stdlib for CPython 2.7.18+ (the ``+`` is for
backported security updates)
- PyPy3.7, which is an interpreter supporting the syntax and the features of
Python 3.7, including the stdlib for CPython 3.7.10. We no longer refer to
this as beta-quality
The interpreters are based on much the same codebase, thus the multiple
release. This is a micro release, all APIs are compatible with the 7.3
releases, but read on to find out what is new.
..
The major new feature is prelminary support for the Universal mode of HPy: a
new way of writing c-extension modules to totally encapsulate the `PyObject*`.
The goal, as laid out in the `HPy blog post`_, is to enable a migration path
for c-extension authors who wish their code to be performant on alternative
interpreters like GraalPython_ (written on top of the Java virtual machine),
RustPython_, and PyPy. Thanks to Oracle for sponsoring work on HPy.
Several issues exposed in the 7.3.3 release were fixed. Many of them came from the
great work ongoing to ship PyPy-compatible binary packages in `conda-forge`_.
A big shout out to them for taking this on.
There are also some significant performance improvements around maps
(dictionaries), ints, strings, btyes and more. These were done as users
reported reproducible performance problems.
Development of PyPy takes place on https://foss.heptapod.net/pypy/pypy.
We have seen an increase in the number of drive-by contributors who are able to
use gitlab + mercurial to create merge requests.
We also have begun streaming the advances towards PyPy3.8 on Saturday evenings
European time on https://www.twitch.tv/pypyproject.
The `CFFI`_ backend has been updated to version 1.14.5 and the cppyy_ backend
to 1.14.2. We recommend using CFFI rather than c-extensions to interact with C,
and using cppyy for performant wrapping of C++ code for Python.
A new contributor took us up on the challenge to get `windows 64-bit`_ support.
The work has been merged and for the first time we are releasing a 64-bit
windows binary package.
As always, this release fixed several issues and bugs. We strongly recommend
updating. Many of the fixes are the direct result of end-user bug reports, so
please continue reporting issues as they crop up.
You can find links to download the v7.3.4 releases here:
https://pypy.org/download.html
We would like to thank our donors for the continued support of the PyPy
project. If PyPy is not quite good enough for your needs, we are available for
direct consulting work. If PyPy is helping you out, we would love to hear about
it and encourage submissions to our `renovated blog site`_ via a pull request
to www.github.com://pypy/pypy.org
We would also like to thank our contributors and encourage new people to join
the project. PyPy has many layers and we need help with all of them: `PyPy`_
and `RPython`_ documentation improvements, tweaking popular modules to run
on pypy, or general `help`_ with making RPython's JIT even better. Since the
previous release, we have accepted contributions from 10 new contributors,
thanks for pitching in.
If you are a python library maintainer and use c-extensions, please consider
making a cffi / cppyy version of your library that would be performant on PyPy.
In any case both `cibuildwheel`_ and the `multibuild system`_ support
building wheels for PyPy.
.. _`PyPy`: index.html
.. _`RPython`: https://rpython.readthedocs.org
.. _`help`: project-ideas.html
.. _`CFFI`: https://cffi.readthedocs.io
.. _`cppyy`: https://cppyy.readthedocs.io
.. _`multibuild system`: https://github.com/matthew-brett/multibuild
.. _`cibuildwheel`: https://github.com/joerick/cibuildwheel
.. _`blog post`: https://morepypy.blogspot.com/2020/02/pypy-and-cffi-have-moved-to-heptapod.html
.. _`conda-forge`: https://conda-forge.org/blog//2020/03/10/pypy
.. _`documented changes`: https://docs.python.org/3/whatsnew/3.7.html#re
.. _`PyPy 3.7 wiki`: https://foss.heptapod.net/pypy/pypy/-/wikis/py3.7%20status
.. _`wheels on PyPI`: https://pypi.org/project/numpy/#files
.. _`windows 64-bit`: https://foss.heptapod.net/pypy/pypy/-/issues/2073#note_141389
.. _`HPy blog post`: https://morepypy.blogspot.com/2019/12/hpy-kick-off-sprint-report.html
.. _`GraalPython`: https://github.com/graalvm/graalpython
.. _`RustPython`: https://github.com/RustPython/RustPython
.. _`renovated blog site`: https://pypy.org/blog
What is PyPy?
=============
PyPy is a Python interpreter, a drop-in replacement for CPython 2.7, 3.7, and
soon 3.8. It's fast (`PyPy and CPython 3.7.4`_ performance
comparison) due to its integrated tracing JIT compiler.
We also welcome developers of other `dynamic languages`_ to see what RPython
can do for them.
This PyPy release supports:
* **x86** machines on most common operating systems
(Linux 32/64 bits, Mac OS X 64 bits, Windows 32/64 bits, OpenBSD, FreeBSD)
* big- and little-endian variants of **PPC64** running Linux,
* **s390x** running Linux
* 64-bit **ARM** machines running Linux.
PyPy does support ARM 32 bit processors, but does not release binaries.
.. _`PyPy and CPython 3.7.4`: https://speed.pypy.org
.. _`dynamic languages`: https://rpython.readthedocs.io/en/latest/examples.html
Changelog
=========
Bugfixes shared across versions
------------------------------
- Test, fix xml default attribute values (issue 3333_, `bpo 42151`_)
- Update the ``re`` module to the Python3.7 implementation
- Truncate ``REG_SZ`` at first ``NULL`` in ``winreg`` to match ``reg.exe``
behaviour (`bpo 25778`_)
Please register or sign in to reply
- Rename ``_hashlib.Hash`` to ``HASH`` to match cpython
- Fix loading system libraries with ctypes on macOS Big Sur (issue 3314)
- Fix ``__thread_id`` in greenlets (issue 3381_)
- Reject XML entity declarations in plist files (`bpo 42051`_)
- Make compare_digest more constant-time (`bpo-40791`_)
- Only use '&' as a query string separator in url parsing (`bpo 42967`_)
- Fix `__r*__` reverse methods on weakref proxies
Speedups and enhancements shared across versions
------------------------------------------------
- Introduce a new RPython decorator ``@llhelper_error_value``, which
officializes the fact that you can raise RPython exceptions from llhelpers,
and makes it possible to specify what is the C value to return in case of
errors. Useful for HPY_
- Introduce a new RPython decorator ``@never_allocates`` which ensures a class
is **never** instantiated at runtime. Useful for objects that are required to
be constant-folded away
- Upstream internal ``cparser`` tool from ``pypy/`` to ``rpython/``
- Make ``set.update(<non-set>)`` more jit-friendly by
- unrolling it if the number of args is small (usually 1)
- jitting the adding of new elements
which fixes ``test_unpack_ex`` on PyPy3.7 as a side-effect
- Fix position of ``elif`` clauses in the AST
- Make the ``exe`` stack larger on windows
- Implement ``constcharpsize2str`` in rffi and refactor code to use it
- Add a ``versions.json`` to https://downloads.python.org/pypy/versions.json
for the gitlab actions python install action
- Add symlinks for python, python3 to the package tarballs (not on Windows)
- Fix a missing error: bare ``except:``-clauses should come last in ``codegen``
- Copy manifest from CPython and link it into ``pypy.exe`` (issue 3363)
- Preserve ``None`` passed as ``REG_BINARY`` instead of crashing or changing it
to an empty string in ``winreg`` (`bpo 21151`_)
- Backport msvc detection from python3, which probably breaks using Visual
Studio 2008 (MSVC9, or the version that used to be used to build CPython2.7
on Windows)
- Optimize chains of ``longlong2float(float2longlong(x))`` and vice versa
- Optimize instances of maps with integer and float fields by storing them
unboxed in a float array (on 32bit machines this is only done for float
fields). The float array is stored in one of the storage slots of the
instance. Once a field proves to be type-unstable we give up on
type-specializing this class and revert all instances once we touch them the
next time to the default representation.
- Update the version of Tk/Tcl on windows to 8.6
- Updated ``cppyy`` API to ``cppyy_backend 1.14.2``: consistent types for
Win64, support for new builtin types
- Refactor the intbound analysis in the JIT
- Faster ``str.replace`` and ``bytes.replace`` implementations.
- Implement ``vmprof`` support for aarch64
- Fast path for ``unicode.upper/lower``, ``unicodedb.toupper/lower`` for ascii,
latin-1
- Add a JIT driver for ``re.split``
- Expose ``os.memfd_create`` on linux for glibc>2.27 (not on portable builds)
- Add a shortcut for ``re.sub`` doing zero replacements
for things like escaping characters)
C-API (cpyext) and c-extensions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- make order of arguments of ``PyDescr_NewGetSet`` consistent with CPython,
related to issue 2267_
- Fix parsing ``inf`` and friends in ``PyOS_string_to_double`` (issue 3375_)
- Fix signature of ``PyEval_EvalCode``
- Change parameter type of ``PyModule_New`` to ``const char*``, add
``PyModule_Check`` and ``PyModule_CheckExact``
- Add ``PyUnicode_Contains`` (issue 3400_)
- Fix ``PyObject_Format`` for type objects (issue 3404_)
- Move ``inttypes.h`` into ``pyport.h`` (issue 3407_)
- Sync ``Py_.*Flags`` values with ``sys.flags`` (issue 3409_)
Python 3.7+
-----------
- Fix the ``crypt`` thread lock (issue 3395_) and fix input encoding (issue
3378_)
- Fixes ``utf_8_decode`` for ``final=False`` (issue 3348_)
- Test, fix for ``time.strftime(u'%y\ud800%m', time.localtime(192039127))``
- ``CALL_FUNCTION_KW`` pops a constant tuple from the stack, and uses
fixedview, which loses the constness
- Fix the ``repr`` of subclasses
- Better error message for ``object.__init__`` with too many parameters
- Fix bug in ``codecs`` where using a function from the parser turns warnings
into SyntaxErrors a bit too eagerly
- Produce proper deprecation warnings from the compiler, with the right
filename and line number
- Fixes for circular imports (`bpo 30024`_) and stack usage (`bpo 31286`_)
- A type annotated assignment was incorrectly handled in the scoping rules,
leading to a crash in complex situations (issue 3355)
- Fix a segfault in nonblocking bufferio reads (issue 3172)
- Use correct slot for ``sni_callback`` attribute in ``_ssl`` (issue 3359_)
- Hang on to ``servername_callback`` handle in ``_ssl`` so it will not be
deleted until the context is deleted (issue 3396)
- Implement ``set_wakeup_fd(warn_on_full_buffer)`` (issue 3227_)
- Add ``REG_QWORD*`` and ``Reg{Dis,En}ableReflectionKey``, and
``RegDeleteKeyEx`` to ``winreg``
Please register or sign in to reply
- Round-trip invalid UTF-16 data in ``winreg`` without a ``UnicodeDecodeError``
(issue 3342_)
- Fix for surrogates in ``winreg`` input value (issue 3345_)
- In ``sysconfig``, ``INCLUDEPY`` and ``INCLUDEDIR`` should point to the
original directory even in a virtualenv (issue 3364_)
- Add ``LDLIBRARY`` to ``sysconfig`` for posgresql
- Prevent overflow in ``_hash_long`` on win64 using method from CPython
- Raise ``ValueError`` when ``argv[0]`` of ``execv`` and friends is empty (`bpo
28732`_)
- Allow compiler to inherit flags from ``__future__.annotations`` (issue 3371_)
- Provide a PyPy ``BytesBuilder`` alternative to ``io.BytesIO`` in pure-python
``pickle``
- Generalize venv to copy all ``*.exe`` and ``*.dll`` for windows
- The evaluation order of keys and values of *large* dict literals was wrong in
3.7 (in lower versions it was the same way, but in 3.7 the evaluation order
of *small* dicts changed (issue 3380_)
- Cache the imported ``re`` module (going through ``__import__`` is
unfortunately quite expensive on 3.x)
- Mention a repeated keyword argument in the error message
- Stop emitting the ``STORE_ANNOTATION`` and ``BINARY_DIVIDE`` bytecodes,
update pyc magic number
- Fix ``site.py`` to be closer to upstream to enable ``pip install --user`` and
``pip install --local``
- No longer call ``eval()`` on content received via HTTP in CJK codec tests (`bpo 41944`_)
- Add missing `c_/f_/contiguous` flags on memoryview
- Fix ``xml.ElementTree.extend`` not working on iterators (issue 3181_, `bpo-43399`_)
- `Python -m` now adds *starting* directory to `sys.path` (`bpo 33053`_)
- Reimplement ``heapq.merge()`` using a linked tournamet tree (`bpo 38938`_)
Python 3.7 C-API
~~~~~~~~~~~~~~~~
- Change ``char *`` to ``const char *`` in ``PyStructSequence_Field``,
``PyStructSequence_Desc``, ``PyGetSetDef``, ``wrapperbase``
- Implement ``METH_FASTCALL`` (issue 3357_)
- Add ``pystrtod.h`` and expose constants
- Clean up some ``char *`` -> ``const char *`` misnaming (issue 3362)
- Accept ``NULL`` input to ``PyLong_AsUnsignedLongLongMask``
- Add ``PyImport_GetModule`` (issue 3385_)
- Converting utf-8 to 1-byte buffers must consider latin-1 encoding (`issue 3413`_)
- Fix value of ``.__module__`` and ``.__name__`` on the result of
``PyType_FromSpec``
.. _2267: https://foss.heptapod.net/pypy/pypy/-/issues/2267
.. _3172: https://foss.heptapod.net/pypy/pypy/-/issues/3172
.. _3181: https://foss.heptapod.net/pypy/pypy/-/issues/3181
.. _3227: https://foss.heptapod.net/pypy/pypy/-/issues/3227
.. _3314: https://foss.heptapod.net/pypy/pypy/-/issues/3314
.. _3333: https://foss.heptapod.net/pypy/pypy/-/issues/3333
.. _3342: https://foss.heptapod.net/pypy/pypy/-/issues/3342
.. _3345: https://foss.heptapod.net/pypy/pypy/-/issues/3345
.. _3348: https://foss.heptapod.net/pypy/pypy/-/issues/3348
.. _3355: https://foss.heptapod.net/pypy/pypy/-/issues/3355
.. _3357: https://foss.heptapod.net/pypy/pypy/-/issues/3357
.. _3359: https://foss.heptapod.net/pypy/pypy/-/issues/3359
.. _3362: https://foss.heptapod.net/pypy/pypy/-/issues/3362
.. _3363: https://foss.heptapod.net/pypy/pypy/-/issues/3363
.. _3364: https://foss.heptapod.net/pypy/pypy/-/issues/3364
.. _3371: https://foss.heptapod.net/pypy/pypy/-/issues/3371
.. _3375: https://foss.heptapod.net/pypy/pypy/-/issues/3375
.. _3378: https://foss.heptapod.net/pypy/pypy/-/issues/3378
.. _3380: https://foss.heptapod.net/pypy/pypy/-/issues/3380
.. _3385: https://foss.heptapod.net/pypy/pypy/-/issues/3385
.. _3381: https://foss.heptapod.net/pypy/pypy/-/issues/3381
.. _3395: https://foss.heptapod.net/pypy/pypy/-/issues/3395
.. _3396: https://foss.heptapod.net/pypy/pypy/-/issues/3396
.. _3400: https://foss.heptapod.net/pypy/pypy/-/issues/3400
.. _3404: https://foss.heptapod.net/pypy/pypy/-/issues/3404
.. _3407: https://foss.heptapod.net/pypy/pypy/-/issues/3407
.. _3409: https://foss.heptapod.net/pypy/pypy/-/issues/3409
.. _`merge request 723`: https://foss.heptapod.net/pypy/pypy/-/merge_request/723
.. _`bpo 21151`: https://bugs.python.org/issue21151
.. _`bpo 28732`: https://bugs.python.org/issue28732
.. _`bpo 30024`: https://bugs.python.org/issue30024
.. _`bpo 31286`: https://bugs.python.org/issue31286
.. _`bpo 33053`: https://bugs.python.org/issue33053
.. _`bpo 38938`: https://bugs.python.org/issue38938
.. _`bpo 40791`: https://bugs.python.org/issue40791
.. _`bpo 41944`: https://bugs.python.org/issue41944
.. _`bpo 42051`: https://bugs.python.org/issue42051
.. _`bpo 42151`: https://bugs.python.org/issue42151
.. _`bpo 42967`: https://bugs.python.org/issue42967
.. _`bpo 43399`: https://bugs.python.org/issue43399
.. _HPy: https://hpy.readthedocs.io/en/latest/
......@@ -92,6 +92,7 @@ alias = {
'Pieter Zieschang': ['pzieschang', 'p_zieschang@yahoo.de'],
'John Witulski': ['witulski'],
'Andrew Lawrence': ['andrew.lawrence@siemens.com', 'andrewjlawrence'],
'Batuhan Taskaya': ['isidentical'],
}
alias_map = {}
......
......@@ -32,8 +32,8 @@
* module/sys/version.py
* doc/conf.py
*/
#define PYPY_VERSION "7.3.4-alpha0"
#define PYPY_VERSION_NUM 0x07030400
#define PYPY_VERSION "7.3.5-alpha0"
#define PYPY_VERSION_NUM 0x07030500
/* Defined to mean a PyPy where cpyext holds more regular references
to PyObjects, e.g. staying alive as long as the internal PyPy object
stays alive. */
......
......@@ -12,7 +12,7 @@ CPYTHON_API_VERSION = 1013 #XXX # sync with include/modsupport.h
# make sure to keep PYPY_VERSION in sync with:
# module/cpyext/include/patchlevel.h
# doc/conf.py
PYPY_VERSION = (7, 3, 4, "alpha", 0)
PYPY_VERSION = (7, 3, 5, "alpha", 0)
import pypy
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment