Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-45873: Restore Python 3.6 compatibility (GH-29730) #29730

Merged
merged 4 commits into from
Nov 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion Tools/scripts/deepfreeze.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,24 @@
import contextlib
import os
import re
import sys
import time
import types
import unicodedata
from typing import Dict, FrozenSet, Tuple, TextIO

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:
Expand Down
12 changes: 11 additions & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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; }
Expand Down
11 changes: 10 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down