<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>