summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2021-11-23 20:36:40 (GMT)
committerGitHub <noreply@github.com>2021-11-23 20:36:40 (GMT)
commitf840398a5fd8741653c26eb8641c48656c9800d4 (patch)
tree60e0df1663a23a1f4519eaa2d05d46d74ec74cc8
parent4ae26b9c1d0c33e3db92c6f305293f9240dea358 (diff)
downloadcpython-f840398a5fd8741653c26eb8641c48656c9800d4.zip
cpython-f840398a5fd8741653c26eb8641c48656c9800d4.tar.gz
cpython-f840398a5fd8741653c26eb8641c48656c9800d4.tar.bz2
bpo-45873: Restore Python 3.6 compatibility (GH-29730)
Co-authored-by: Guido van Rossum <gvanrossum@gmail.com>
-rw-r--r--Tools/scripts/deepfreeze.py8
-rwxr-xr-xconfigure12
-rw-r--r--configure.ac11
3 files changed, 28 insertions, 3 deletions
diff --git a/Tools/scripts/deepfreeze.py b/Tools/scripts/deepfreeze.py
index b840c4b..e51a408 100644
--- a/Tools/scripts/deepfreeze.py
+++ b/Tools/scripts/deepfreeze.py
@@ -5,8 +5,10 @@ import collections
import contextlib
import os
import re
+import sys
import time
import types
+import unicodedata
from typing import Dict, FrozenSet, Tuple, TextIO
import umarshal
@@ -14,9 +16,13 @@ import umarshal
verbose = False
+def isprintable(b: bytes) -> bool:
+ return all(0x20 <= c < 0x7f for c in b)
+
+
def make_string_literal(b: bytes) -> str:
res = ['"']
- if b.isascii() and b.decode("ascii").isprintable():
+ if isprintable(b):
res.append(b.decode("ascii").replace("\\", "\\\\").replace("\"", "\\\""))
else:
for i in b:
diff --git a/configure b/configure
index 0684921..711b6d2 100755
--- a/configure
+++ b/configure
@@ -3142,7 +3142,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
# pybuilddir.txt will be created by --generate-posix-vars in the Makefile
rm -f pybuilddir.txt
-for ac_prog in python$PACKAGE_VERSION python3 python
+for ac_prog in python$PACKAGE_VERSION python3.10 python3.9 python3.8 python3.7 python3.6 python3 python
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -3187,6 +3187,16 @@ test -n "$PYTHON_FOR_REGEN" || PYTHON_FOR_REGEN="python3"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Python for regen version" >&5
+$as_echo_n "checking Python for regen version... " >&6; }
+if command -v $PYTHON_FOR_REGEN >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $($PYTHON_FOR_REGEN -V 2>/dev/null)" >&5
+$as_echo "$($PYTHON_FOR_REGEN -V 2>/dev/null)" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5
+$as_echo "missing" >&6; }
+fi
+
if test "$cross_compiling" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for python interpreter for cross build" >&5
$as_echo_n "checking for python interpreter for cross build... " >&6; }
diff --git a/configure.ac b/configure.ac
index ba22418..e539d3b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -96,9 +96,18 @@ AC_SUBST(host)
# pybuilddir.txt will be created by --generate-posix-vars in the Makefile
rm -f pybuilddir.txt
-AC_CHECK_PROGS(PYTHON_FOR_REGEN, python$PACKAGE_VERSION python3 python, python3)
+AC_CHECK_PROGS([PYTHON_FOR_REGEN],
+ [python$PACKAGE_VERSION python3.10 python3.9 python3.8 python3.7 python3.6 python3 python],
+ [python3])
AC_SUBST(PYTHON_FOR_REGEN)
+AC_MSG_CHECKING([Python for regen version])
+if command -v $PYTHON_FOR_REGEN >/dev/null 2>&1; then
+ AC_MSG_RESULT([$($PYTHON_FOR_REGEN -V 2>/dev/null)])
+else
+ AC_MSG_RESULT([missing])
+fi
+
if test "$cross_compiling" = yes; then
AC_MSG_CHECKING([for python interpreter for cross build])
if test -z "$PYTHON_FOR_BUILD"; then