aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatti Picus <matti.picus@gmail.com>2021-10-08 11:15:15 +0300
committerMatti Picus <matti.picus@gmail.com>2021-10-08 11:15:15 +0300
commitdf6776f1e6b3f611c9986e99ef68a70d3fcd173c (patch)
tree0906eb84dc86ab61d2cded25a50a0db0b188b633
parentfix venv yet again: libpypy* was missing when using --copies (diff)
parentfix doc build, add missing file from py3.7 (diff)
downloadpypy-df6776f1e6b3f611c9986e99ef68a70d3fcd173c.tar.gz
pypy-df6776f1e6b3f611c9986e99ef68a70d3fcd173c.tar.bz2
pypy-df6776f1e6b3f611c9986e99ef68a70d3fcd173c.zip
merge default into py3.7
-rw-r--r--.hgtags3
-rw-r--r--pypy/doc/build.rst20
-rw-r--r--pypy/doc/contributing.rst23
-rw-r--r--pypy/doc/index-of-release-notes.rst1
-rw-r--r--pypy/doc/index-of-whatsnew.rst1
-rw-r--r--pypy/doc/release-v7.3.6.rst6
-rw-r--r--pypy/doc/whatsnew-pypy3-7.3.6.rst2
-rw-r--r--pypy/tool/release/check_versions.py3
-rw-r--r--pypy/tool/release/repackage.sh6
-rw-r--r--pypy/tool/release/versions.json135
-rw-r--r--rpython/translator/platform/posix.py14
11 files changed, 193 insertions, 21 deletions
diff --git a/.hgtags b/.hgtags
index b385c2d3de..9dcadbaf49 100644
--- a/.hgtags
+++ b/.hgtags
@@ -118,3 +118,6 @@ cd00c77c619f02c43c23e6a2514e5b685230ef02 release-pypy3.7-v7.3.5rc2
dd033553d6918be9f2a72bb3ea03b3024bef2be2 release-pypy2.7-v7.3.6rc1
a5e5c18d11e9b7163722f1d31a723a4cb4a50f14 release-pypy3.7-v7.3.6rc1
7e233b73b92740ab7a20680a404ac100be1eb508 release-pypy3.8-v7.3.6rc1
+b89256933b0b12169977295224730039a58a1815 release-pypy2.7-v7.3.6rc2
+e4511a21ddfc921621a5a008f106eafb102206f2 release-pypy3.7-v7.3.6rc2
+28b8e9d917f109e3324feb0bac6b541a6482a57d release-pypy3.8-v7.3.6rc2
diff --git a/pypy/doc/build.rst b/pypy/doc/build.rst
index 248e143ed8..b734456910 100644
--- a/pypy/doc/build.rst
+++ b/pypy/doc/build.rst
@@ -162,6 +162,26 @@ way to enable it for building pypy is to set an environment variable::
After setting this, translation (described next) will find the OpenSSL libs
as expected.
+Set environment variables that will affect translation
+------------------------------------------------------
+
+The following environment variables can be used to tweak the result:
+
++------------------------+-----------------------------------------------------------+
+| value | result |
++------------------------+-----------------------------------------------------------+
+| CC | compiler to use |
+| PYPY_MULTIARCH | pypy 3.7+: ends up in ``sys.platform._multiarch`` |
+| .. | on posix |
+| PYPY_USESSION_DIR | base directory for temporary files, usually ``$TMP`` |
+| PYPY_USESSION_BASENAME | each call to ``from rpython.tools import udir`` will get |
+| .. | a temporary directory |
+| .. | ``$PYPY_USESSION_DIR/usession-$PYPY_USESSION_BASENAME-N`` |
+| .. | where ``N`` increments on each call |
+| PYPY_USESSION_KEEP | how many old temporary directories to keep, any older |
+| .. | ones will be deleted. Defaults to 3 |
++---------------------+--------------------------------------------------------------+
+
Run the translation
-------------------
diff --git a/pypy/doc/contributing.rst b/pypy/doc/contributing.rst
index 9a66feaa89..3b348ed622 100644
--- a/pypy/doc/contributing.rst
+++ b/pypy/doc/contributing.rst
@@ -267,23 +267,16 @@ of very high quality requirements for compilers and partly because there is
simply no other way to get around such complex project, that will keep you sane.
There are probably people out there who are smart enough not to need it, we're
not one of those. You may consider familiarizing yourself with `pytest`_,
-since this is a tool we use for tests.
-This leads to the next issue:
+since this is a tool we use for tests. We ship our own tweaked version of
+pytest in the top of the tree, so ``python -m pytest`` will pick up our version,
+which means our tests need to run with that version of pytest.
-.. _pytest: https://pytest.org/
-
-py.test and the py lib
-----------------------
-
-The `py.test testing tool`_ drives all our testing needs.
+We also have post-translation tests in the ``extra_tests`` directory that are
+run in a virtual environment from a separate directory, so they use a more
+up-to-date version of pytest. As much as possible, these are meant to be
+pass with CPython as well.
-We use the `py library`_ for filesystem path manipulations, terminal
-writing, logging and some other support functionality.
-
-You don't necessarily need to install these two libraries because
-we also ship them inlined in the PyPy source tree.
-
-.. _py library: https://pylib.readthedocs.org/
+.. _pytest: https://pytest.org/
Running PyPy's unit tests
-------------------------
diff --git a/pypy/doc/index-of-release-notes.rst b/pypy/doc/index-of-release-notes.rst
index df595f8478..099071b883 100644
--- a/pypy/doc/index-of-release-notes.rst
+++ b/pypy/doc/index-of-release-notes.rst
@@ -82,6 +82,7 @@ CPython 3.3 compatible versions
.. toctree::
+ release-pypy3.3-5.5.0.rst
release-pypy3.3-v5.5.0.rst
release-pypy3.3-v5.2-alpha1.rst
diff --git a/pypy/doc/index-of-whatsnew.rst b/pypy/doc/index-of-whatsnew.rst
index 0551a62382..c2d83c73b9 100644
--- a/pypy/doc/index-of-whatsnew.rst
+++ b/pypy/doc/index-of-whatsnew.rst
@@ -49,6 +49,7 @@ CPython 3.7 compatible versions
.. toctree::
whatsnew-pypy3-head.rst
+ whatsnew-pypy3-7.3.6.rst
whatsnew-pypy3-7.3.4.rst
CPython 3.6 compatible versions
diff --git a/pypy/doc/release-v7.3.6.rst b/pypy/doc/release-v7.3.6.rst
index 892f4c9ea9..9f11be1ad9 100644
--- a/pypy/doc/release-v7.3.6.rst
+++ b/pypy/doc/release-v7.3.6.rst
@@ -139,6 +139,10 @@ Bugfixes shared across versions
the last tag (i.e. final)
- Fix position bugs in the astcompiler stemming from the fact that
``SyntaxErrors`` use 1-based column offsets
+- Fix an obscure corner of ``%``-formatting when a tuple is passed in that
+ triggered infinite recursion in the ``__repr__`` of a ``named_tuple`` with an
+ ``__iter__`` (issue 3555_)
+- Fixed a PowerPC JIT bug that caused a stack overflow (issue 3463_)
Speedups and enhancements shared across versions
------------------------------------------------
@@ -232,6 +236,7 @@ Python 3.7 C-API
.. _3353: https://foss.heptapod.net/pypy/pypy/-/issues/3353
.. _3431: https://foss.heptapod.net/pypy/pypy/-/issues/3431
.. _3402: https://foss.heptapod.net/pypy/pypy/-/issues/3402
+.. _3463: https://foss.heptapod.net/pypy/pypy/-/issues/3463
.. _3472: https://foss.heptapod.net/pypy/pypy/-/issues/3472
.. _3483: https://foss.heptapod.net/pypy/pypy/-/issues/3483
.. _3490: https://foss.heptapod.net/pypy/pypy/-/issues/3490
@@ -242,6 +247,7 @@ Python 3.7 C-API
.. _3531: https://foss.heptapod.net/pypy/pypy/-/issues/3531
.. _3538: https://foss.heptapod.net/pypy/pypy/-/issues/3538
.. _3546: https://foss.heptapod.net/pypy/pypy/-/issues/3546
+.. _3555: https://foss.heptapod.net/pypy/pypy/-/issues/3555
.. _`bpo 22557`: https://bugs.python.org/issue22557
.. _`bpo 44022`: https://bugs.python.org/issue44022
.. _`bpo 43650`: https://bugs.python.org/issue43650
diff --git a/pypy/doc/whatsnew-pypy3-7.3.6.rst b/pypy/doc/whatsnew-pypy3-7.3.6.rst
index c559fe710c..f44e1ad7a9 100644
--- a/pypy/doc/whatsnew-pypy3-7.3.6.rst
+++ b/pypy/doc/whatsnew-pypy3-7.3.6.rst
@@ -18,10 +18,12 @@ suggestions which name could have been meant instead in case of typos). This
follows the upcoming CPython 3.10 features.
.. branch: distutils-implementation
+
Instantiate the ``distutils.command.install`` schema for the python
implementation (issue 3436)
.. branch: py3.7-bpo-30245
+
Avoid overflow in ``struct.pack_into`` error message (BPO 30245)
diff --git a/pypy/tool/release/check_versions.py b/pypy/tool/release/check_versions.py
index 81f5b01a96..3461d48436 100644
--- a/pypy/tool/release/check_versions.py
+++ b/pypy/tool/release/check_versions.py
@@ -33,6 +33,9 @@ def assert_in(a, b):
pypy_versions = {
+ '7.3.6rc2': {'python_version': ['3.8.12', '3.7.12', '2.7.18'],
+ 'date': '2021-10-06',
+ },
'7.3.6rc1': {'python_version': ['3.8.12', '3.7.12', '2.7.18'],
'date': '2021-09-13',
},
diff --git a/pypy/tool/release/repackage.sh b/pypy/tool/release/repackage.sh
index 0f82706845..fd3deca60c 100644
--- a/pypy/tool/release/repackage.sh
+++ b/pypy/tool/release/repackage.sh
@@ -1,12 +1,12 @@
#! /bin/bash
# Edit these appropriately before running this script
-pmaj=2 # python main version: 2 or 3
-pmin=7 # python minor version
+pmaj=3 # python main version: 2 or 3
+pmin=8 # python minor version
maj=7
min=3
rev=6
-rc=rc1 # comment this line for actual release
+rc=rc2 # comment this line for actual release
function maybe_exit {
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
diff --git a/pypy/tool/release/versions.json b/pypy/tool/release/versions.json
index ee68599c26..464347e2de 100644
--- a/pypy/tool/release/versions.json
+++ b/pypy/tool/release/versions.json
@@ -1,5 +1,140 @@
[
{
+ "pypy_version": "7.3.6rc2",
+ "python_version": "3.8.12",
+ "stable": false,
+ "latest_pypy": false,
+ "date": "2021-10-06",
+ "files": [
+ {
+ "filename": "pypy3.8-v7.3.6rc2-aarch64.tar.bz2",
+ "arch": "aarch64",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy3.8-v7.3.6rc2-aarch64.tar.bz2"
+ },
+ {
+ "filename": "pypy3.8-v7.3.6rc2-linux32.tar.bz2",
+ "arch": "i686",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy3.8-v7.3.6rc2-linux32.tar.bz2"
+ },
+ {
+ "filename": "pypy3.8-v7.3.6rc2-linux64.tar.bz2",
+ "arch": "x64",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy3.8-v7.3.6rc2-linux64.tar.bz2"
+ },
+ {
+ "filename": "pypy3.8-v7.3.6rc2-osx64.tar.bz2",
+ "arch": "x64",
+ "platform": "darwin",
+ "download_url": "https://downloads.python.org/pypy/pypy3.8-v7.3.6rc2-osx64.tar.bz2"
+ },
+ {
+ "filename": "pypy3.8-v7.3.6rc2-win64.zip",
+ "arch": "x64",
+ "platform": "win64",
+ "download_url": "https://downloads.python.org/pypy/pypy3.8-v7.3.6rc2-win64.zip"
+ },
+ {
+ "filename": "pypy3.8-v7.3.6rc2-s390x.tar.bz2",
+ "arch": "s390x",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy3.8-v7.3.6rc2-s390x.tar.bz2"
+ }
+ ]
+ },
+ {
+ "pypy_version": "7.3.6rc2",
+ "python_version": "3.7.12",
+ "stable": false,
+ "latest_pypy": false,
+ "date": "2021-10-06",
+ "files": [
+ {
+ "filename": "pypy3.7-v7.3.6rc2-aarch64.tar.bz2",
+ "arch": "aarch64",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy3.7-v7.3.6rc2-aarch64.tar.bz2"
+ },
+ {
+ "filename": "pypy3.7-v7.3.6rc2-linux32.tar.bz2",
+ "arch": "i686",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy3.7-v7.3.6rc2-linux32.tar.bz2"
+ },
+ {
+ "filename": "pypy3.7-v7.3.6rc2-linux64.tar.bz2",
+ "arch": "x64",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy3.7-v7.3.6rc2-linux64.tar.bz2"
+ },
+ {
+ "filename": "pypy3.7-v7.3.6rc2-osx64.tar.bz2",
+ "arch": "x64",
+ "platform": "darwin",
+ "download_url": "https://downloads.python.org/pypy/pypy3.7-v7.3.6rc2-osx64.tar.bz2"
+ },
+ {
+ "filename": "pypy3.7-v7.3.6rc2-win64.zip",
+ "arch": "x64",
+ "platform": "win64",
+ "download_url": "https://downloads.python.org/pypy/pypy3.7-v7.3.6rc2-win64.zip"
+ },
+ {
+ "filename": "pypy3.7-v7.3.6rc2-s390x.tar.bz2",
+ "arch": "s390x",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy3.7-v7.3.6rc2-s390x.tar.bz2"
+ }
+ ]
+ },
+ {
+ "pypy_version": "7.3.6rc2",
+ "python_version": "2.7.18",
+ "stable": false,
+ "latest_pypy": false,
+ "date": "2021-10-06",
+ "files": [
+ {
+ "filename": "pypy2.7-v7.3.6rc2-aarch64.tar.bz2",
+ "arch": "aarch64",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy2.7-v7.3.6rc2-aarch64.tar.bz2"
+ },
+ {
+ "filename": "pypy2.7-v7.3.6rc2-linux32.tar.bz2",
+ "arch": "i686",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy2.7-v7.3.6rc2-linux32.tar.bz2"
+ },
+ {
+ "filename": "pypy2.7-v7.3.6rc2-linux64.tar.bz2",
+ "arch": "x64",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy2.7-v7.3.6rc2-linux64.tar.bz2"
+ },
+ {
+ "filename": "pypy2.7-v7.3.6rc2-osx64.tar.bz2",
+ "arch": "x64",
+ "platform": "darwin",
+ "download_url": "https://downloads.python.org/pypy/pypy2.7-v7.3.6rc2-osx64.tar.bz2"
+ },
+ {
+ "filename": "pypy2.7-v7.3.6rc2-win64.zip",
+ "arch": "x64",
+ "platform": "win64",
+ "download_url": "https://downloads.python.org/pypy/pypy2.7-v7.3.6rc2-win64.zip"
+ },
+ {
+ "filename": "pypy2.7-v7.3.6rc2-s390x.tar.bz2",
+ "arch": "s390x",
+ "platform": "linux",
+ "download_url": "https://downloads.python.org/pypy/pypy2.7-v7.3.6rc2-s390x.tar.bz2"
+ }
+ ]
+ },
+ {
"pypy_version": "7.3.6rc1",
"python_version": "3.8.12",
"stable": false,
diff --git a/rpython/translator/platform/posix.py b/rpython/translator/platform/posix.py
index 74b81c4572..0a956c9267 100644
--- a/rpython/translator/platform/posix.py
+++ b/rpython/translator/platform/posix.py
@@ -94,9 +94,17 @@ class BasePosix(Platform):
return result
def get_multiarch(self):
- from rpython.jit.backend import detect_cpu
- model = detect_cpu.autodetect()
- return model.replace('-', '_') + '-linux-gnu'
+ if 'DEB_HOST_MULTIARCH' in os.environ:
+ return os.environ['DEB_HOST_MULTIARCH']
+ if 'PYPY_MULTIARCH' in os.environ:
+ return os.environ['PYPY_MULTIARCH']
+ if sys.platform == 'cygwin':
+ return ''
+ try:
+ ret = self.execute(self.cc, args=['--print-multiarch'])
+ except CompilationError:
+ return ''
+ return ret.out.strip()
def get_rpath_flags(self, rel_libdirs):
# needed for cross-compilation i.e. ARM