aboutsummaryrefslogtreecommitdiff
path: root/pypy/doc
diff options
context:
space:
mode:
authorMatti Picus <matti.picus@gmail.com>2020-08-08 22:50:48 +0300
committerMatti Picus <matti.picus@gmail.com>2020-08-08 22:50:48 +0300
commit60c3fe135e095c2207752b2376d8bbfc1fde963b (patch)
tree9523bc238d9d426a8d3bbb7c9cf28ffd21c15c1f /pypy/doc
parentWhen "pypy -m pip" fails to find pip, give an error message that hints at "pypy (diff)
downloadpypy-60c3fe135e095c2207752b2376d8bbfc1fde963b.tar.gz
pypy-60c3fe135e095c2207752b2376d8bbfc1fde963b.tar.bz2
pypy-60c3fe135e095c2207752b2376d8bbfc1fde963b.zip
start release note, optimistically include hpy Universal mode
Diffstat (limited to 'pypy/doc')
-rw-r--r--pypy/doc/index-of-release-notes.rst1
-rw-r--r--pypy/doc/release-v7.3.2.rst239
2 files changed, 240 insertions, 0 deletions
diff --git a/pypy/doc/index-of-release-notes.rst b/pypy/doc/index-of-release-notes.rst
index 206d67da8d..d14307a260 100644
--- a/pypy/doc/index-of-release-notes.rst
+++ b/pypy/doc/index-of-release-notes.rst
@@ -6,6 +6,7 @@ Combined releases
.. toctree::
+ release-v7.3.2.rst
release-v7.3.1.rst
release-v7.3.0.rst
release-v7.2.0.rst
diff --git a/pypy/doc/release-v7.3.2.rst b/pypy/doc/release-v7.3.2.rst
new file mode 100644
index 0000000000..454bb21e46
--- /dev/null
+++ b/pypy/doc/release-v7.3.2.rst
@@ -0,0 +1,239 @@
+===============================================
+PyPy v7.3.2: release of 2.7, 3.6, and 3.7 alpha
+===============================================
+
+The PyPy team is proud to release the version 7.3.2 of PyPy, which includes
+three 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.13
+
+ - PyPy3.6: which is an interpreter supporting the syntax and the features of
+ Python 3.6, including the stdlib for CPython 3.6.9.
+
+ - PyPy3.7 alpha: which is our first release of an interpreter supporting the
+ syntax and the features of Python 3.7, including the stdlib for CPython
+ 3.7.4. We call this alpha quality software, but it is based off PyPy 3.6 so
+ issues should be around compatibility and not stability. Please try it out
+ and let us know what is broken or missing. We have not implemented the
+ `documented changes`_ in the ``re`` module, and other pieces are also
+ missing. For more information, see the `PyPy 3.7 wiki`_ page
+
+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.0 (Dec
+2019) and 7.3.1 (April 2020) 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.
+
+Conda Forge now `supports PyPy`_ as a python interpreter. The support is quite
+complete for linux and macOS. This is the result of a lot of
+hard work and good will on the part of the Conda Forge team. A big shout out
+to them for taking this on.
+
+Development of PyPy has transitioning to https://foss.heptapod.net/pypy/pypy.
+This move was covered more extensively in this `blog post`_. We have seen an
+increase in the number of drive-by contributors who are able to use gitlab +
+mercurial to create merge requests.
+
+The `CFFI`_ backend has been updated to version 14.1. We recommend using CFFI
+rather than c-extensions to interact with C, and using cppyy_ for performant
+wrapping of C++ code for Python.
+
+Numpy has begun shipping `wheels on PyPI` for PyPy, currently for linux 64-bit
+only. We fixed ``PyUnicode_*`` C-API handling on windows, so now NumPy passes
+all tests on PyPy 3.6 win32, and wheels for PyPy windows will be available from
+the next NumPy release.
+
+A new contributor took us up on the challenge to get `windows 64-bit`` support.
+The work is proceeding on the ``win64`` branch, more help in coding or
+sponsorship is welcome.
+
+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.2 releases here:
+
+ http://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.
+
+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 XXX 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`: http://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
+.. _`supports PyPy`: 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
+
+
+What is PyPy?
+=============
+
+PyPy is a very compliant Python interpreter, almost a drop-in replacement for
+CPython 2.7, 3.6, and 3.7. It's fast (`PyPy and CPython 2.7.x`_ 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 bits, OpenBSD, FreeBSD)
+
+ * big- and little-endian variants of **PPC64** running Linux,
+
+ * **s390x** running Linux
+
+ * 64-bit **ARM** machines running Linux.
+
+Unfortunately at the moment of writing our ARM32 buildbots are out of service,
+so for now we are **not** releasing any binaries for that architecture,
+although PyPy does support ARM 32 bit processors.
+
+.. _`PyPy and CPython 2.7.x`: http://speed.pypy.org
+.. _`dynamic languages`: http://rpython.readthedocs.io/en/latest/examples.html
+
+
+Changelog
+=========
+
+
+
+Changes shared across versions
+------------------------------
+- More sysconfig fixes for win32
+- Fix ``time.tm_gmtoff`` and ``tm_zone`` on win32 to be like CPython
+- Speed up the performance of matching unicode strings in the sre engine
+- Add jobs control to the Makefile (`issue 3187`_)
+- encode unicodes even in (built-in) files opened in binary mode (`issue 3178`_)
+- Refactor ``RSocket.xxx_into()`` methods and add ``.recvmsg_into()``
+- Invoke ``pip`` via ``runpy`` in ``ensurepip`` (`merge request 723`_)
+- Fix implementation of PEP 3118 in ``ctypes``
+- Package macOS as a "portable package" including needed ``dylib`` files
+- Allow overridden ``.__int__()`` in subclasses of ``complex``
+- More bitbucket -> heptapod documentation fixes
+- Fix path to tcl,tk on windows, `issue 3247`_
+- Speed up ``list.pop``, ``list.insert`` operations that shift many items (`merge request 729`_)
+- Update win32 to `openssl1.1`
+- Assigning a class instance as ``__get__`` should call the class's
+ ``__call__``, not its ``__get__`` (`issue 3255`_)
+- Remove all implicit ``str``-``unicode`` conversions in RPython (`merge request 732`_)
+- Need ``FORBID_TEMP_BOXES`` on aarch64, like on arm32, to prevent register spilling (`issue 3188`_)
+- Initialize lock timeout on windows if timeout is infinite (impacted PyPy 2.7
+ only) (`merge request 744`, `issue 3252`_)
+- Move ``lib_pypy/tools`` -> ``lib_pypy/pypy_tools``: otherwise ``tools``
+ appears on the ``sys.path``. This would override any ``tools`` in packages
+ like NumPy.
+- Update ``libffi_msvc`` by copying the fixes done in cffi, and also fix when
+ returning a ``struct`` in CFFI
+
+
+C-API (cpyext) and c-extensions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+- Add ``PyCFunction_Call``
+- use ``space.getitem`` in ``PySequence_ITEM``, fixes `pybind11 2146`_
+- give preference to ``as_sequence.sq_item`` in ``PySequence_ITEM``
+- In Py_EnterRecursiveCall, ``char*`` -> ``const char *``, `issue 3232_`
+- Fix ``PySet_Add`` for ``frozenset`` (`issue 3251`_)
+
+Python 3.6 only
+---------------
+- Fix ``_sqlite3.Connection`` with ``isolation_level=None`` in the constructor
+- Fix embedded mode for CFFI (CFFI issue 449)
+- Add ``socket.recvmsg_into``
+- Fix return types in ``os.readlink()`` (`issue 3177`_) and ``os.listdir()``
+- Fix `os.listdir()`` for win32
+- Update ``_ssl`` to handle Post Handshake Authorization callbacks (PHA)
+- Fix ``oldcrc`` argument of ``binascii.crc_hqx`` to ``unsigned int``
+- Implement ``socket.sethostname()`` (`issue 3198`_)
+- Backport CPython `35519`_: "Rename test.bisect to test.bisect_cmd" from CPython 3.7
+- Fix the repr of ``SRE_Pattern`` and ``SRE_Match``
+- Fix ill-defined behaviour with class.__init__ (`issue 3239`_)
+- Improve pickling performance (`issue 3230`_)
+- Forward port race condition fix from PyPy 2.7 ``Lib/weakref.py`` (`issue 3243`_)
+- Implement bpo `30465`_: Fix lineno and col_offset in fstring AST nodes (`merge request 730`_)
+- Implement bpo `29104`_: Fixed parsing backslashes in f-strings (`merge request 736`_)
+- Fix ``time.sleep`` bug in win32
+- Expose missing ``lzma_stream_encoder`` in cffi ``_lzma`` module (`issue 3242_`)
+- Fix ``os.unsetenv`` on win32, bpo `39413`_ (CPython 3.7+, we can do 3.6+)
+- Add symlinks to ``pypy``, ``pypy3.6`` to linux, macOS tarball. Maybe needed for macOS and multibuild
+- The following sequence no longer makes any copy: ``b = StringBuilder();
+ b.append(some_large_string); s = b.build()``
+- Add missing ``os`` constants: ``P_NOWAIT``, ``P_NOWAITO``, ``P_WAIT``
+- Allow codec errorhandlers to modify the underlying str/bytes being converted
+- Do not import ``platform`` at startup (`issue 3269`_)
+- Enable more extensive optimizations of list strategies on Python3, since
+ ``int`` and ``long`` are the same (`issue 3250`_)
+- Special case bytewise codec errorhandlers ``replace``, ``ignore``,
+ ``surrogateescape`` to use the same logic as ``final == True``
+- Allow ``CRTL-C`` to interrupt ``time.sleep`` on windows
+- Inhibit compiler tail-call optimization via ``PYPY_INHIBIT_TAIL_CALL`` on windows
+- When ``pypy -m pip`` fails to find ``pip``, give an error message that hints
+ at ``pypy -m ensurepip``
+
+Python 3.6 C-API
+~~~~~~~~~~~~~~~~
+- Add ``PyType_GetFlags``, ``PyType_GetSlot``, ``PyUnicode_{En,De}code_Locale``,
+ ``PyUnicode_{Find,Read,Write}Char``,
+- Fix ``PyUnicode_*`` handling on windows where ``wchar_t`` is 2 bytes
+
+.. _`issue 3187`: https://foss.heptapod.net/pypy/pypy/issues/3187
+.. _`issue 3178`: https://foss.heptapod.net/pypy/pypy/issues/3178
+.. _`issue 3177`: https://foss.heptapod.net/pypy/pypy/issues/3177
+.. _`issue 3198`: https://foss.heptapod.net/pypy/pypy/issues/3198
+.. _`issue 3232`: https://foss.heptapod.net/pypy/pypy/issues/3232
+.. _`issue 3239`: https://foss.heptapod.net/pypy/pypy/issues/3239
+.. _`issue 3230`: https://foss.heptapod.net/pypy/pypy/issues/3230
+.. _`issue 3242`: https://foss.heptapod.net/pypy/pypy/issues/3242
+.. _`issue 3243`: https://foss.heptapod.net/pypy/pypy/issues/3243
+.. _`issue 3247`: https://foss.heptapod.net/pypy/pypy/issues/3247
+.. _`issue 3250`: https://foss.heptapod.net/pypy/pypy/issues/3250
+.. _`issue 3251`: https://foss.heptapod.net/pypy/pypy/issues/3251
+.. _`issue 3252`: https://foss.heptapod.net/pypy/pypy/issues/3252
+.. _`issue 3255`: https://foss.heptapod.net/pypy/pypy/issues/3255
+.. _`issue 3269`: https://foss.heptapod.net/pypy/pypy/issues/3269
+.. _`issue 3274`: https://foss.heptapod.net/pypy/pypy/issues/3274
+
+.. _`merge request 723`: https://foss.heptapod.net/pypy/pypy/merge_request/723
+.. _`merge request 729`: https://foss.heptapod.net/pypy/pypy/merge_request/729
+.. _`merge request 730`: https://foss.heptapod.net/pypy/pypy/merge_request/730
+.. _`merge request 736`: https://foss.heptapod.net/pypy/pypy/merge_request/736
+.. _`merge request 732`: https://foss.heptapod.net/pypy/pypy/merge_request/732
+.. _`merge request 744`: https://foss.heptapod.net/pypy/pypy/merge_request/744
+
+.. _31976: https://bugs.python.org/issue31976
+.. _35519: https://bugs.python.org/issue35519
+.. _30465: https://bugs.python.org/issue30465
+.. _39413: https://bugs.python.org/issue39413
+
+.. _`pybind11 2146`: https://github.com/pybind/pybind11/pull/2146