<pre style='margin:0'>
Dan Villiom Podlaski Christiansen (danchr) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/2b6788333144e5cd5df108780787d030e8d95093">https://github.com/macports/macports-ports/commit/2b6788333144e5cd5df108780787d030e8d95093</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 2b678833314 pypy: update to 7.3.6 & 7.3.7, add pypy38 subports
</span>2b678833314 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 2b6788333144e5cd5df108780787d030e8d95093
</span>Author: Dan Villiom Podlaski Christiansen <danchr@macports.org>
AuthorDate: Tue Oct 26 09:19:10 2021 +0200
<span style='display:block; white-space:pre;color:#404040;'> pypy: update to 7.3.6 & 7.3.7, add pypy38 subports
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> This removes the pypy-bootstrap port, as it's essentially a kludge.
</span><span style='display:block; white-space:pre;color:#404040;'> Instead, just add the binary interpreter as an extra distfile when
</span><span style='display:block; white-space:pre;color:#404040;'> needed. The core motivation for this is that it links against some
</span><span style='display:block; white-space:pre;color:#404040;'> libraries in `/usr/local`, and shouldn't really ever be left around
</span><span style='display:block; white-space:pre;color:#404040;'> anyway.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> As another change, we install the Python 3.8 subport directly into
</span><span style='display:block; white-space:pre;color:#404040;'> ${prefix}, as it now satisfies the mtree requirements.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Fixes: https://trac.macports.org/ticket/63638
</span>---
lang/pypy-bootstrap/Portfile | 25 +---
lang/pypy/Portfile | 166 ++++++++++++++++---------
lang/pypy/files/patch-big-sur-pypy27.diff | 153 -----------------------
lang/pypy/files/patch-big-sur-pypy37.diff | 193 ------------------------------
lang/pypy/files/python-pypy36 | 2 +-
lang/pypy/files/python-pypy37 | 2 +-
lang/pypy/files/python-pypy38 | 13 ++
lang/pypy/files/python3-pypy36 | 2 +-
lang/pypy/files/python3-pypy37 | 2 +-
lang/pypy/files/python3-pypy38 | 13 ++
10 files changed, 142 insertions(+), 429 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/pypy-bootstrap/Portfile b/lang/pypy-bootstrap/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ea3feb6a507..48a8734c025 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/pypy-bootstrap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/pypy-bootstrap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,36 +1,19 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup obsolete 1.0
</span>
name pypy-bootstrap
version 5.1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 2
</span> categories lang python
platforms darwin
supported_archs x86_64
maintainers {danchr @danchr} openmaintainer
license MIT PSF
<span style='display:block; white-space:pre;background:#ffe0e0;'>-description bootstrap binary of pypy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-long_description This is a binary version of pypy provided for the \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- purpose of building the pypy port more quickly.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> homepage http://pypy.org/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites https://bitbucket.org/pypy/pypy/downloads/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-distname pypy-${version}-osx64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use_bzip2 yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums md5 7f546940acb3ceebb5967697a9b05b65 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rmd160 fb209f68f77de56037faed5920678887608cdb0a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 7e270c66347158dd794c101c4817f742f760ed805aa0d10abe19ba4a78a75118
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use_configure no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- copy ${worksrcpath} ${destroot}${prefix}/lib/${name}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- delete ${destroot}${prefix}/lib/${name}/lib_pypy/_gdbm_cffi.pypy-41.so
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system "chmod -R a+rX ${destroot}${prefix}/lib/${name}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Remove after 20220427
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+replaced_by pypy
</span> livecheck.type none
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/pypy/Portfile b/lang/pypy/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b315eba4b0e..646755acde5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/pypy/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/pypy/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,10 +3,11 @@
</span> PortSystem 1.0
PortGroup gitlab 1.0
PortGroup select 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup deprecated 1.0
</span>
gitlab.instance https://foss.heptapod.net
<span style='display:block; white-space:pre;background:#ffe0e0;'>-gitlab.setup pypy pypy 7.3.3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+gitlab.setup pypy pypy 7.3.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span>
categories lang python devel
license MIT PSF
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,12 +36,14 @@ patchfiles make_output.diff \
</span> ffiplatform.py.diff \
paths.diff
<span style='display:block; white-space:pre;background:#e0ffe0;'>+deprecated.eol_version no
</span> use_configure no
# no effort has been made to get the JIT working anywhere but x86-64,
# and without that, PyPy has little or no benefit over CPython; if
# you're looking for support for Apple Silicon - or ARM64 - see
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://morepypy.blogspot.com/2020/12/mac-meets-arm64.html
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://morepypy.blogspot.com/2020/12/mac-meets-arm64.html and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://trac.macports.org/ticket/63486#comment:3
</span> supported_archs x86_64
# a simple mapping from scripts to modules -- ideally, upstream
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,13 +54,6 @@ array set module_scripts {
</span> smtpd.py smtpd
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport pypy3 {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # remove after 20210925
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- replaced_by pypy36
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set python.branch 3.6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> subport pypy36 {
set python.branch 3.6
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -82,16 +78,21 @@ subport pypy37 {
</span> select.entries-append [list python3 python3-$subport $subport]
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+subport pypy38 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set python.branch 3.8
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport pypy-tkinter {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set python.branch 2.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set module_scripts(venv) venv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set module_scripts(idle) idlelib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:xz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:python3_select
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.entries-append [list python3 python3-$subport $subport]
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport pypy3-tkinter {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # remove after 20210925
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- replaced_by pypy36-tkinter
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set python.branch 3.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport pypy-tkinter {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set python.branch 2.7
</span> }
subport pypy36-tkinter {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -102,6 +103,10 @@ subport pypy37-tkinter {
</span> set python.branch 3.7
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+subport pypy38-tkinter {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set python.branch 3.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {$subport == ${name}} {
set python.branch 2.7
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -109,34 +114,58 @@ if {$subport == ${name}} {
</span> select.entries-append [list python2 python2-$subport $subport]
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# delayed until ${python.branch} is set
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set gitlab.tag_prefix release-pypy${python.branch}-v
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-distname ${name}${python.branch}-v${version}-src
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> if {${python.branch} == 2.7} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ version 7.3.6
</span> patchfiles-append pypy2-darwin.py.diff
<span style='display:block; white-space:pre;background:#ffe0e0;'>- checksums rmd160 d96834cd5b4db84ce9ecf79543478934ad25481d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 f63488051ba877fd65840bf8d53822a9c6423d947839023b8720139f4b6e2336 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 20881821
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums rmd160 fffd65ed0ba685ab2eb419758431b827701e4d22 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 0114473c8c57169cdcab1a69c60ad7fef7089731fdbe6f46af55060b29be41e4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 21621891
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set use_prefix no
</span> } elseif {${python.branch} == 3.6} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ version 7.3.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ revision 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ deprecated.eol_version yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ livecheck.type none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> patchfiles-append pypy3-darwin.py.diff
checksums rmd160 02e9c76e0b381d1bb7ea2f828f221a4d7cdd403a \
sha256 a23d21ca0de0f613732af4b4abb0b0db1cc56134b5bf0e33614eca87ab8805af \
size 22484684
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.platform} eq "darwin" && ${os.major} >= 20} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-big-sur-pypy36.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set use_prefix no
</span> } elseif {${python.branch} == 3.7} {
patchfiles-append pypy3-darwin.py.diff
<span style='display:block; white-space:pre;background:#ffe0e0;'>- checksums rmd160 2bdde7c11bee2ce9736effbc327abea22c410f46 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 f6c96401f76331e474cca2d14437eb3b2f68a0f27220a6dcbc537445fe9d5b78 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 24633503
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums rmd160 19304ae652f6f987841d693d52d9e855ae8c7129 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 2ed02ac9e710859c41bc82deafb08619792bb9a27eeaa1676c741ededd214dd7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 23804463
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set use_prefix no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${python.branch} == 3.8} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append pypy3-darwin.py.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums rmd160 541e6d98e10379d8982cf08e99a68c9f103a506d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 21ae339f4f5016d6ca7300305f3e3b554373835cb3c39a9041fe30e6811c80c6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 24375444
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set use_prefix yes
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# delayed until ${python.branch} is set
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set gitlab.tag_prefix release-pypy${python.branch}-v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname ${name}${python.branch}-v${version}-src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> description A fast interpreter for Python ${python.branch}
long_description \
PyPy is a replacement for CPython ${python.branch}. The main reason to use it \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- instead of CPython is speed, as it runs generally faster.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ instead of CPython is speed, as it generally runs faster.
</span>
build.env PYPY_USESSION_DIR=${workpath} PYPY_LOCALBASE=${prefix} \
PYPY_NO_EMBED_DEPENDENCIES=1 \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -155,18 +184,13 @@ destroot.env-append CC=${configure.cc} \
</span> "LDSHARED=${configure.cc} -pthread -shared -undefined dynamic_lookup"
destroot.dir ${worksrcpath}/pypy/tool/release
<span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot.args --builddir ${destroot}${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot.args --builddir ${workpath} \
</span> --archive-name ${subport} \
--without-_tkinter --no-embedded-dependencies
destroot.target package.py
destroot.post_args
post-patch {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[info exists replaced_by]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # remove after 20210925
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # sanity check, useful when upgrading, as upstream tends to move these around
if { ![catch {exec grep --exclude "*.orig" -Ilwre /sw -e ${prefix} ${worksrcpath}} result] } {
ui_warn "patching potentially didn't catch all references to /sw and ${prefix}:\n$result"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -197,25 +221,30 @@ if {$subport ne $name} {
</span> depends_build-append port:pypy
build.cmd ${prefix}/lib/pypy/bin/pypy
} else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${os.platform} eq "darwin" && ${os.major} < 20} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # use a binary distribution of pypy itself
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append port:pypy-bootstrap
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.cmd ${prefix}/lib/pypy-bootstrap/bin/pypy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # use a binary distribution of pypy itself
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums-prepend ${distname}${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} >= 20} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # older versions cannot import C extensions on macOS 11 and later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set bootstrapper "pypy2.7-v${version}-osx64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles-append ${bootstrapper}${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${bootstrapper}${extract.suffix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 3d58032c522e135b2b13027f1dd55781e7d15959 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 9a97de82037d4be1949ec0c35a4d638ba635e8b34948549ae2fa08abd2cbaa8c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 24367213
</span> } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # fall back to good old CPython...
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append port:python27 port:py27-pycparser port:py27-cffi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.cmd ${prefix}/bin/python2.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # for compatibility, don't bump this needlessly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set bootstrapper "pypy-5.1.0-osx64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles-append ${bootstrapper}${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${bootstrapper}${extract.suffix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 fb209f68f77de56037faed5920678887608cdb0a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 7e270c66347158dd794c101c4817f742f760ed805aa0d10abe19ba4a78a75118 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 19466885
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.platform} eq "darwin" && ${os.major} >= 20} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${python.branch} == 2.7} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-big-sur-pypy27.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {${python.branch} == 3.6} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-big-sur-pypy36.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-big-sur-pypy37.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.cmd ${workpath}/${bootstrapper}/bin/pypy
</span> }
# a lot of memory is used before the C compiler even runs, so limit build.jobs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -250,9 +279,33 @@ platform darwin {
</span> # Install support files, but only if not in a proper subport
if {![regexp \- $subport]} {
post-destroot {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- file delete ${destroot}${prefix}/lib/${subport}.tar.bz2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s ../lib/${subport}/bin/${name} ${destroot}${prefix}/bin/${subport}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s ../lib/${subport}/bin/${name} ${destroot}${prefix}/bin/${name}-${python.branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${use_prefix} == yes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W "${workpath}" "tar -xjvf ${subport}.tar.bz2 -C ${destroot}${prefix} -s ,${subport}/,,"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # first, relocate the binaries we want to keep
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${prefix}/bin~
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${destroot}${prefix}/bin/pypy3 ${destroot}${prefix}/bin~/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${subport} ${destroot}${prefix}/bin~/${name}-${python.branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${destroot}${prefix}/bin/libpypy3-c.dylib ${destroot}${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete -force ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${destroot}${prefix}/bin~ ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "install_name_tool -rpath @executable_path/ @executable_path/../lib ${destroot}${prefix}/bin/pypy38"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${destroot}${prefix}/LICENSE ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${destroot}${prefix}/README.rst ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${prefix}/lib/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W "${workpath}" "tar -xjvf ${subport}.tar.bz2 -C ${destroot}${prefix}/lib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete ${destroot}${prefix}/lib/${subport}.tar.bz2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ../lib/${subport}/bin/${name} ${destroot}${prefix}/bin/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ../lib/${subport}/bin/${name} ${destroot}${prefix}/bin/${name}-${python.branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span>
xinstall -d ${destroot}${prefix}/share/man/man1
system -W ${worksrcpath}/pypy/doc/man \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -262,8 +315,10 @@ if {![regexp \- $subport]} {
</span>
foreach script [array names module_scripts] {
set module $module_scripts($script)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set scriptpath "${destroot}${prefix}/lib/${subport}/bin/${script}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set scriptdirpath "${destroot}${prefix}/lib/${subport}/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set scriptpath "${scriptdirpath}/${script}"
</span>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d "${scriptdirpath}"
</span> xinstall -m 755 ${filespath}/module-script.sh $scriptpath
reinplace "s+__PYPY__+${prefix}/bin/${subport}+" $scriptpath
reinplace "s+__MODULE__+${module}+" $scriptpath
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -315,11 +370,6 @@ if {${os.major} < 11 && ${os.platform} eq "darwin"} {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# delayed until after all of the above; remove after 20210925
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[info exists replaced_by]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- PortGroup obsolete 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> gitlab.livecheck.regex (\[0-9.]+)
if {[regexp \- $subport]} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/pypy/files/patch-big-sur-pypy27.diff b/lang/pypy/files/patch-big-sur-pypy27.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 92ff51fe639..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/pypy/files/patch-big-sur-pypy27.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,153 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git lib-python/2.7/ctypes/macholib/dyld.py lib-python/2.7/ctypes/macholib/dyld.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lib-python/2.7/ctypes/macholib/dyld.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ lib-python/2.7/ctypes/macholib/dyld.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -6,6 +6,11 @@ import os
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from framework import framework_info
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from dylib import dylib_info
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from itertools import *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+try:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ from _ctypes import _dyld_shared_cache_contains_path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+except ImportError:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ def _dyld_shared_cache_contains_path(*args):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ raise NotImplementedError
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __all__ = [
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'dyld_find', 'framework_find',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -130,8 +135,15 @@ def dyld_find(name, executable_path=None
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dyld_executable_path_search(name, executable_path),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dyld_default_search(name, env),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ), env):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if os.path.isfile(path):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ try:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if _dyld_shared_cache_contains_path(path):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ except NotImplementedError:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pass
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- raise ValueError("dylib %s could not be found" % (name,))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def framework_find(fn, executable_path=None, env=None):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git lib_pypy/_ctypes/__init__.py lib_pypy/_ctypes/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lib_pypy/_ctypes/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ lib_pypy/_ctypes/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13,15 +13,15 @@ from _ctypes.builtin import (
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- _string_at_addr, _wstring_at_addr, set_conversion_mode)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from _ctypes.union import Union
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+try: from __pypy__ import builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+except ImportError: builtinify = lambda f: f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import os as _os
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if _os.name in ("nt", "ce"):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from _rawffi import FormatError
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from _rawffi import check_HRESULT as _check_HRESULT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- try: from __pypy__ import builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- except ImportError: builtinify = lambda f: f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def CopyComPointer(src, dst):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from ctypes import c_void_p, cast
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -32,8 +32,6 @@ if _os.name in ("nt", "ce"):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dst[0] = cast(src, c_void_p).value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- del builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LoadLibrary = dlopen
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from _rawffi import FUNCFLAG_STDCALL, FUNCFLAG_CDECL, FUNCFLAG_PYTHONAPI
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -43,6 +41,20 @@ from _ctypes.builtin import get_errno, s
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if _os.name in ("nt", "ce"):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from _ctypes.builtin import get_last_error, set_last_error
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+import sys as _sys
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if _sys.platform == 'darwin':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ try:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ from ._ctypes_cffi import ffi as _ffi, lib as _lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ @builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ def _dyld_shared_cache_contains_path(path):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if not hasattr(_lib, '_dyld_shared_cache_contains_path'):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ raise NotImplementedError
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return _lib._dyld_shared_cache_contains_path(path.encode())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ except ImportError:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pass
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+del builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __version__ = '1.1.0'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #XXX platform dependant?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RTLD_LOCAL = 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git lib_pypy/_ctypes/_ctypes_build.py lib_pypy/_ctypes/_ctypes_build.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-new file mode 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- /dev/null
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ lib_pypy/_ctypes/_ctypes_build.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+import os
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+import platform
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+from cffi import FFI
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ffi = FFI()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+def main():
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if platform.system() != 'Darwin':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ release, _, _ = platform.mac_ver()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ release = tuple(map(int, release.split('.')))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if release < (10, 16):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ffi.cdef('bool _dyld_shared_cache_contains_path(const char* path);')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ffi.set_source('_ctypes_cffi', '#include <mach-o/dyld.h>')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ os.chdir(os.path.dirname(__file__))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ffi.compile()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if __name__ == '__main__':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ main()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git lib_pypy/pypy_tools/build_cffi_imports.py lib_pypy/pypy_tools/build_cffi_imports.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lib_pypy/pypy_tools/build_cffi_imports.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ lib_pypy/pypy_tools/build_cffi_imports.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from __future__ import print_function
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--import sys, shutil, os, tempfile, hashlib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+import sys, shutil, os, tempfile, hashlib, collections
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import sysconfig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from os.path import join
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -22,18 +22,19 @@ class MissingDependenciesError(Exception
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pass
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--cffi_build_scripts = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "_ssl": "_ssl_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "sqlite3": "_sqlite3_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "audioop": "_audioop_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "_tkinter": "_tkinter/tklib_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "curses": "_curses_build.py" if sys.platform != "win32" else None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "syslog": "_syslog_build.py" if sys.platform != "win32" else None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "gdbm": "_gdbm_build.py" if sys.platform != "win32" else None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "grp": "_pwdgrp_build.py" if sys.platform != "win32" else None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "resource": "_resource_build.py" if sys.platform != "win32" else None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "xx": None, # for testing: 'None' should be completely ignored
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+cffi_build_scripts = collections.OrderedDict([
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("_ctypes._ctypes_cffi", "_ctypes/_ctypes_build.py" if sys.platform == "darwin" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("_ssl", "_ssl_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("sqlite3", "_sqlite3_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("audioop", "_audioop_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("_tkinter", "_tkinter/tklib_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("curses", "_curses_build.py" if sys.platform != "win32" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("syslog", "_syslog_build.py" if sys.platform != "win32" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("gdbm", "_gdbm_build.py" if sys.platform != "win32" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("grp", "_pwdgrp_build.py" if sys.platform != "win32" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("resource", "_resource_build.py" if sys.platform != "win32" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("xx", None), # for testing: 'None' should be completely ignored
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # for distribution, we may want to fetch dependencies not provided by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # the OS, such as a recent openssl/libressl.
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/pypy/files/patch-big-sur-pypy37.diff b/lang/pypy/files/patch-big-sur-pypy37.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 617d5536a6f..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/pypy/files/patch-big-sur-pypy37.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,193 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git lib-python/3/ctypes/macholib/dyld.py lib-python/3/ctypes/macholib/dyld.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lib-python/3/ctypes/macholib/dyld.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ lib-python/3/ctypes/macholib/dyld.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -6,6 +6,11 @@ import os
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from ctypes.macholib.framework import framework_info
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from ctypes.macholib.dylib import dylib_info
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from itertools import *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+try:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ from _ctypes import _dyld_shared_cache_contains_path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+except ImportError:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ def _dyld_shared_cache_contains_path(*args):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ raise NotImplementedError
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __all__ = [
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'dyld_find', 'framework_find',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -122,8 +127,15 @@ def dyld_find(name, executable_path=None
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dyld_executable_path_search(name, executable_path),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dyld_default_search(name, env),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ), env):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if os.path.isfile(path):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ try:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if _dyld_shared_cache_contains_path(path):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ except NotImplementedError:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pass
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- raise ValueError("dylib %s could not be found" % (name,))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def framework_find(fn, executable_path=None, env=None):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git lib-python/3/ctypes/test/test_macholib.py lib-python/3/ctypes/test/test_macholib.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lib-python/3/ctypes/test/test_macholib.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ lib-python/3/ctypes/test/test_macholib.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -45,19 +45,22 @@ def find_lib(name):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class MachOTest(unittest.TestCase):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @unittest.skipUnless(sys.platform == "darwin", 'OSX-specific test')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def test_find(self):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- self.assertEqual(find_lib('pthread'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- '/usr/lib/libSystem.B.dylib')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # On Mac OS 11, system dylibs are only present in the shared cache,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # so symlinks like libpthread.dylib -> libSystem.B.dylib will not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # be resolved by dyld_find
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ self.assertIn(find_lib('pthread'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ('/usr/lib/libSystem.B.dylib', '/usr/lib/libpthread.dylib'))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- result = find_lib('z')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Issue #21093: dyld default search path includes $HOME/lib and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # /usr/local/lib before /usr/lib, which caused test failures if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # a local copy of libz exists in one of them. Now ignore the head
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # of the path.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- self.assertRegex(result, r".*/lib/libz\..*.*\.dylib")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ self.assertRegex(result, r".*/lib/libz.*\.dylib")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- self.assertEqual(find_lib('IOKit'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- '/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ self.assertIn(find_lib('IOKit'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ('/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ '/System/Library/Frameworks/IOKit.framework/IOKit'))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if __name__ == "__main__":
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unittest.main()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git lib_pypy/_ctypes/__init__.py lib_pypy/_ctypes/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lib_pypy/_ctypes/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ lib_pypy/_ctypes/__init__.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13,15 +13,15 @@ from _ctypes.builtin import (
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- _string_at_addr, _wstring_at_addr, set_conversion_mode)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from _ctypes.union import Union
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+try: from __pypy__ import builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+except ImportError: builtinify = lambda f: f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import os as _os
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if _os.name in ("nt", "ce"):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from _rawffi import FormatError
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from _rawffi import check_HRESULT as _check_HRESULT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- try: from __pypy__ import builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- except ImportError: builtinify = lambda f: f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def CopyComPointer(src, dst):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from ctypes import c_void_p, cast
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -32,8 +32,6 @@ if _os.name in ("nt", "ce"):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dst[0] = cast(src, c_void_p).value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- del builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LoadLibrary = dlopen
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from _rawffi import FUNCFLAG_STDCALL, FUNCFLAG_CDECL, FUNCFLAG_PYTHONAPI
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -43,6 +41,20 @@ from _ctypes.builtin import get_errno, s
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if _os.name in ("nt", "ce"):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from _ctypes.builtin import get_last_error, set_last_error
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+import sys as _sys
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if _sys.platform == 'darwin':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ try:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ from ._ctypes_cffi import ffi as _ffi, lib as _lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ @builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ def _dyld_shared_cache_contains_path(path):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if not hasattr(_lib, '_dyld_shared_cache_contains_path'):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ raise NotImplementedError
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return _lib._dyld_shared_cache_contains_path(path.encode())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ except ImportError:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pass
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+del builtinify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- __version__ = '1.1.0'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #XXX platform dependant?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- RTLD_LOCAL = 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git lib_pypy/_ctypes/_ctypes_build.py lib_pypy/_ctypes/_ctypes_build.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-new file mode 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- /dev/null
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ lib_pypy/_ctypes/_ctypes_build.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+import os
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+import platform
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+from cffi import FFI
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ffi = FFI()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+def main():
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if platform.system() != 'Darwin':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ release, _, _ = platform.mac_ver()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ release = tuple(map(int, release.split('.')))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if release < (10, 16):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ffi.cdef('bool _dyld_shared_cache_contains_path(const char* path);')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ffi.set_source('_ctypes_cffi', '#include <mach-o/dyld.h>')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ os.chdir(os.path.dirname(__file__))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ffi.compile()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if __name__ == '__main__':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ main()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git lib_pypy/pypy_tools/build_cffi_imports.py lib_pypy/pypy_tools/build_cffi_imports.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lib_pypy/pypy_tools/build_cffi_imports.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ lib_pypy/pypy_tools/build_cffi_imports.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from __future__ import print_function
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--import sys, shutil, os, tempfile, hashlib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+import sys, shutil, os, tempfile, hashlib, collections
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import sysconfig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from os.path import join
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -22,22 +22,23 @@ class MissingDependenciesError(Exception
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pass
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--cffi_build_scripts = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "_blake2": "_blake2/_blake2_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "_ssl": "_ssl_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "sqlite3": "_sqlite3_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "audioop": "_audioop_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "_tkinter": "_tkinter/tklib_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "curses": "_curses_build.py" if sys.platform != "win32" else None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "syslog": "_syslog_build.py" if sys.platform != "win32" else None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "_gdbm": "_gdbm_build.py" if sys.platform != "win32" else None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "grp": "_pwdgrp_build.py" if sys.platform != "win32" else None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "resource": "_resource_build.py" if sys.platform != "win32" else None,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "lzma": "_lzma_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- # "_decimal": "_decimal_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "_sha3": "_sha3/_sha3_build.py",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "xx": None, # for testing: 'None' should be completely ignored
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+cffi_build_scripts = collections.OrderedDict([
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("_ctypes._ctypes_cffi", "_ctypes/_ctypes_build.py" if sys.platform == "darwin" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("_blake2", "_blake2/_blake2_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("_ssl", "_ssl_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("sqlite3", "_sqlite3_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("audioop", "_audioop_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("_tkinter", "_tkinter/tklib_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("curses", "_curses_build.py" if sys.platform != "win32" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("syslog", "_syslog_build.py" if sys.platform != "win32" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("_gdbm", "_gdbm_build.py" if sys.platform != "win32" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("grp", "_pwdgrp_build.py" if sys.platform != "win32" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("resource", "_resource_build.py" if sys.platform != "win32" else None),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("lzma", "_lzma_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # "_decimal", "_decimal_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("_sha3", "_sha3/_sha3_build.py"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("xx", None), # for testing: 'None' should be completely ignored
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # for distribution, we may want to fetch dependencies not provided by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # the OS, such as a recent openssl/libressl.
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/pypy/files/python-pypy36 b/lang/pypy/files/python-pypy36
</span><span style='display:block; white-space:pre;color:#808080;'>index fd48af8b07a..0b3c36865a0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/pypy/files/python-pypy36
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/pypy/files/python-pypy36
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,7 +6,7 @@ lib/pypy36/bin/pydoc
</span> lib/pypy36/bin/smtpd.py
lib/pypy36/bin/2to3
-
<span style='display:block; white-space:pre;background:#ffe0e0;'>-share/man/man1/pypy3.1.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+share/man/man1/pypy36.1.gz
</span> -
-
-
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/pypy/files/python-pypy37 b/lang/pypy/files/python-pypy37
</span><span style='display:block; white-space:pre;color:#808080;'>index 5d61f9fc942..9fd2f9dfaf5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/pypy/files/python-pypy37
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/pypy/files/python-pypy37
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,7 +6,7 @@ lib/pypy37/bin/pydoc
</span> lib/pypy37/bin/smtpd.py
lib/pypy37/bin/2to3
-
<span style='display:block; white-space:pre;background:#ffe0e0;'>-share/man/man1/pypy3.1.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+share/man/man1/pypy37.1.gz
</span> -
-
-
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/pypy/files/python-pypy38 b/lang/pypy/files/python-pypy38
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3665e853a08
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/pypy/files/python-pypy38
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/pypy38
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+lib/pypy38/bin/idle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+lib/pypy38/bin/pydoc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+lib/pypy38/bin/smtpd.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+lib/pypy38/bin/2to3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+share/man/man1/pypy38.1.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/pypy/files/python3-pypy36 b/lang/pypy/files/python3-pypy36
</span><span style='display:block; white-space:pre;color:#808080;'>index fd48af8b07a..0b3c36865a0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/pypy/files/python3-pypy36
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/pypy/files/python3-pypy36
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,7 +6,7 @@ lib/pypy36/bin/pydoc
</span> lib/pypy36/bin/smtpd.py
lib/pypy36/bin/2to3
-
<span style='display:block; white-space:pre;background:#ffe0e0;'>-share/man/man1/pypy3.1.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+share/man/man1/pypy36.1.gz
</span> -
-
-
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/pypy/files/python3-pypy37 b/lang/pypy/files/python3-pypy37
</span><span style='display:block; white-space:pre;color:#808080;'>index 5d61f9fc942..9fd2f9dfaf5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/pypy/files/python3-pypy37
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/pypy/files/python3-pypy37
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,7 +6,7 @@ lib/pypy37/bin/pydoc
</span> lib/pypy37/bin/smtpd.py
lib/pypy37/bin/2to3
-
<span style='display:block; white-space:pre;background:#ffe0e0;'>-share/man/man1/pypy3.1.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+share/man/man1/pypy37.1.gz
</span> -
-
-
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/pypy/files/python3-pypy38 b/lang/pypy/files/python3-pypy38
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3665e853a08
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/pypy/files/python3-pypy38
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/pypy38
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+lib/pypy38/bin/idle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+lib/pypy38/bin/pydoc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+lib/pypy38/bin/smtpd.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+lib/pypy38/bin/2to3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+share/man/man1/pypy38.1.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span></pre><pre style='margin:0'>
</pre>