Skip to content

Commit 5c65ee1

Browse files
committed
add release post
1 parent 6f29a87 commit 5c65ee1

File tree

1 file changed

+138
-0
lines changed

1 file changed

+138
-0
lines changed

posts/2022/02/pypyv738-release.txt

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
.. title: PyPy v7.3.8: release of python 2.7, 3.7, 3.8, and 3.9
2+
.. slug: pypy-v738-release
3+
.. date: 2022-02-20 05:53:45 UTC
4+
.. tags: release
5+
.. category:
6+
.. link:
7+
.. description:
8+
.. type: rest
9+
.. author: The PyPy Team
10+
11+
=====================================================
12+
PyPy v7.3.8: release of python 2.7, 3.7, and 3.8-beta
13+
=====================================================
14+
15+
The PyPy team is proud to release version 7.3.8 of PyPy. It has been only a few
16+
months since our last release, but we have some nice speedups and bugfixes we
17+
wish to share. The release includes four different interpreters:
18+
19+
- PyPy2.7, which is an interpreter supporting the syntax and the features of
20+
Python 2.7 including the stdlib for CPython 2.7.18+ (the ``+`` is for
21+
backported security updates)
22+
23+
- PyPy3.7, which is an interpreter supporting the syntax and the features of
24+
Python 3.7, including the stdlib for CPython 3.7.12. This will be the last
25+
release of PyPy3.7.
26+
27+
- PyPy3.8, which is an interpreter supporting the syntax and the features of
28+
Python 3.8, including the stdlib for CPython 3.8.12. This is our third
29+
release of this interpreter, and we are removing the "beta" tag.
30+
31+
- PyPy3.9, which is an interpreter supporting the syntax and the features of
32+
Python 3.9, including the stdlib for CPython 3.9.10. As this is our first
33+
release of this interpreter, we relate to this as "beta" quality. We
34+
welcome testing of this version, if you discover incompatibilities, please
35+
report them so we can gain confidence in the version.
36+
37+
The interpreters are based on much the same codebase, thus the multiple
38+
release. This is a micro release, all APIs are compatible with the other 7.3
39+
releases. Highlights of the release, since the release of 7.3.7 in late October 2021,
40+
include:
41+
42+
- PyPy3.9 uses an RPython version of the PEG parser which brought with it a
43+
cleanup of the lexer and parser in general
44+
- Fixed a regression in PyPy3.8 when JITting empty list comprehensions
45+
- Tweaked some issues around changing the file layout after packaging to make
46+
the on-disk layout of PyPy3.8 more compatible with CPython. This requires
47+
``setuptools>=58.1.0``
48+
- RPython now allows the target executable to have a ``.`` in its name, so
49+
PyPy3.9 will produce a ``pypy3.9-c`` and ``libpypy3.9-c.so``. Changing the
50+
name of the shared object to be version-specific (it used to be
51+
``libpypy3-c.so``) will allow it to live alongside other versions.
52+
- Building PyPy3.9+ accepts a ``--platlibdir`` argument like CPython.
53+
- Improvement in ssl's use of CFFI buffers to speed up ``recv`` and ``recvinto``
54+
- Update the packaged OpenSSL to 1.1.1m
55+
56+
We recommend updating. You can find links to download the v7.3.8 releases here:
57+
58+
https://pypy.org/download.html
59+
60+
We would like to thank our donors for the continued support of the PyPy
61+
project. If PyPy is not quite good enough for your needs, we are available for
62+
direct consulting work. If PyPy is helping you out, we would love to hear about
63+
it and encourage submissions to our blog_ via a pull request
64+
to https://github.com/pypy/pypy.org
65+
66+
We would also like to thank our contributors and encourage new people to join
67+
the project. PyPy has many layers and we need help with all of them: `PyPy`_
68+
and `RPython`_ documentation improvements, tweaking popular modules to run
69+
on PyPy, or general `help`_ with making RPython's JIT even better. Since the
70+
previous release, we have accepted contributions from 6 new contributors,
71+
thanks for pitching in, and welcome to the project!
72+
73+
If you are a python library maintainer and use C-extensions, please consider
74+
making a HPy_ / CFFI_ / cppyy_ version of your library that would be performant
75+
on PyPy.
76+
In any case both `cibuildwheel`_ and the `multibuild system`_ support
77+
building wheels for PyPy.
78+
79+
.. _`PyPy`: index.html
80+
.. _`RPython`: https://rpython.readthedocs.org
81+
.. _`help`: project-ideas.html
82+
.. _CFFI: https://cffi.readthedocs.io
83+
.. _cppyy: https://cppyy.readthedocs.io
84+
.. _`multibuild system`: https://github.com/matthew-brett/multibuild
85+
.. _`cibuildwheel`: https://github.com/joerick/cibuildwheel
86+
.. _blog: https://pypy.org/blog
87+
.. _HPy: https://hpyproject.org/
88+
89+
What is PyPy?
90+
=============
91+
92+
PyPy is a Python interpreter, a drop-in replacement for CPython 2.7, 3.7, 3.8 and
93+
3.9. It's fast (`PyPy and CPython 3.7.4`_ performance
94+
comparison) due to its integrated tracing JIT compiler.
95+
96+
We also welcome developers of other `dynamic languages`_ to see what RPython
97+
can do for them.
98+
99+
This PyPy release supports:
100+
101+
* **x86** machines on most common operating systems
102+
(Linux 32/64 bits, Mac OS X 64 bits, Windows 64 bits, OpenBSD, FreeBSD)
103+
104+
* 64-bit **ARM** machines running Linux. A shoutout to Huawei for sponsoring
105+
the VM running the tests.
106+
107+
* **s390x** running Linux
108+
109+
* big- and little-endian variants of **PPC64** running Linux,
110+
111+
PyPy support Windows 32-bit, PPC64 big- and little-endian, and ARM 32 bit, but
112+
does not release binaries. Please reach out to us if you wish to sponsor
113+
releases for those platforms.
114+
115+
.. _`PyPy and CPython 3.7.4`: https://speed.pypy.org
116+
.. _`dynamic languages`: https://rpython.readthedocs.io/en/latest/examples.html
117+
118+
Known Issues with PyPy3.9
119+
=========================
120+
121+
- There is still a known `speed regression`_ around ``**kwargs`` handling
122+
- We slightly modified the concurrent future's ``ProcessExcecutorPool`` to
123+
start all the worker processes when the first task is received (like on
124+
Python3.8) to avoid an apparent race condition when using ``fork`` and
125+
threads (issue 3650_).
126+
127+
128+
What else is new?
129+
=================
130+
131+
For more information about the 7.3.8 release, see the `full changelog`_.
132+
133+
Please update, and continue to help us make PyPy better.
134+
135+
Cheers,
136+
The PyPy team
137+
138+
.. _`full changelog`: https://doc.pypy.org/en/latest/release-v7.3.8.html#changelog

0 commit comments

Comments
 (0)