Mailing List Archive

bpo-45847: Port _bisect, _heapq, _json, _pickle, _random, and _zoneinfo to PY_STDLIB_MOD_SIMPLE (GH-29689)
https://github.com/python/cpython/commit/718cee08cc082ece590f5a012253a405422da03d
commit: 718cee08cc082ece590f5a012253a405422da03d
branch: main
author: Erlend Egeberg Aasland <erlend.aasland@innova.no>
committer: miss-islington <31488909+miss-islington@users.noreply.github.com>
date: 2021-11-22T00:45:41-08:00
summary:

bpo-45847: Port _bisect, _heapq, _json, _pickle, _random, and _zoneinfo to PY_STDLIB_MOD_SIMPLE (GH-29689)



Automerge-Triggered-By: GH:tiran

files:
M Modules/Setup.stdlib.in
M configure
M configure.ac
M setup.py

diff --git a/Modules/Setup.stdlib.in b/Modules/Setup.stdlib.in
index b22a956f0c404..bf414410d4b76 100644
--- a/Modules/Setup.stdlib.in
+++ b/Modules/Setup.stdlib.in
@@ -29,7 +29,13 @@
############################################################################
# Modules that should always be present (POSIX and Windows):
@MODULE_ARRAY_TRUE@array arraymodule.c
+@MODULE__BISECT_TRUE@_bisect _bisectmodule.c
@MODULE__CONTEXTVARS_TRUE@_contextvars _contextvarsmodule.c
+@MODULE__HEAPQ_TRUE@_heapq _heapqmodule.c
+@MODULE__JSON_TRUE@_json _json.c
+@MODULE__PICKLE_TRUE@_pickle _pickle.c
+@MODULE__RANDOM_TRUE@_random _randommodule.c
+@MODULE__ZONEINFO_TRUE@_zoneinfo _zoneinfo.c

# needs libm
@MODULE_MATH_TRUE@math mathmodule.c
diff --git a/configure b/configure
index 72285a6eeae72..6aea5b6b77e56 100755
--- a/configure
+++ b/configure
@@ -688,14 +688,26 @@ MODULE_OSSAUDIODEV_FALSE
MODULE_OSSAUDIODEV_TRUE
MODULE_GRP_FALSE
MODULE_GRP_TRUE
-MODULE_CMATH_FALSE
-MODULE_CMATH_TRUE
+MODULE__ZONEINFO_FALSE
+MODULE__ZONEINFO_TRUE
+MODULE__RANDOM_FALSE
+MODULE__RANDOM_TRUE
+MODULE__PICKLE_FALSE
+MODULE__PICKLE_TRUE
MODULE_MATH_FALSE
MODULE_MATH_TRUE
+MODULE__JSON_FALSE
+MODULE__JSON_TRUE
+MODULE__HEAPQ_FALSE
+MODULE__HEAPQ_TRUE
MODULE__DATETIME_FALSE
MODULE__DATETIME_TRUE
MODULE__CONTEXTVARS_FALSE
MODULE__CONTEXTVARS_TRUE
+MODULE_CMATH_FALSE
+MODULE_CMATH_TRUE
+MODULE__BISECT_FALSE
+MODULE__BISECT_TRUE
MODULE_ARRAY_FALSE
MODULE_ARRAY_TRUE
MODULE_TIME_FALSE
@@ -19586,6 +19598,32 @@ fi



+ if true; then
+ MODULE__BISECT_TRUE=
+ MODULE__BISECT_FALSE='#'
+else
+ MODULE__BISECT_TRUE='#'
+ MODULE__BISECT_FALSE=
+fi
+
+
+
+
+
+ if true; then
+ MODULE_CMATH_TRUE=
+ MODULE_CMATH_FALSE='#'
+else
+ MODULE_CMATH_TRUE='#'
+ MODULE_CMATH_FALSE=
+fi
+
+
+
+ as_fn_append MODULE_BLOCK "MODULE_CMATH_LDFLAGS=$LIBM$as_nl"
+
+
+
if true; then
MODULE__CONTEXTVARS_TRUE=
MODULE__CONTEXTVARS_FALSE='#'
@@ -19612,6 +19650,30 @@ fi



+ if true; then
+ MODULE__HEAPQ_TRUE=
+ MODULE__HEAPQ_FALSE='#'
+else
+ MODULE__HEAPQ_TRUE='#'
+ MODULE__HEAPQ_FALSE=
+fi
+
+
+
+
+
+ if true; then
+ MODULE__JSON_TRUE=
+ MODULE__JSON_FALSE='#'
+else
+ MODULE__JSON_TRUE='#'
+ MODULE__JSON_FALSE=
+fi
+
+
+
+
+
if true; then
MODULE_MATH_TRUE=
MODULE_MATH_FALSE='#'
@@ -19627,16 +19689,38 @@ fi


if true; then
- MODULE_CMATH_TRUE=
- MODULE_CMATH_FALSE='#'
+ MODULE__PICKLE_TRUE=
+ MODULE__PICKLE_FALSE='#'
else
- MODULE_CMATH_TRUE='#'
- MODULE_CMATH_FALSE=
+ MODULE__PICKLE_TRUE='#'
+ MODULE__PICKLE_FALSE=
fi



- as_fn_append MODULE_BLOCK "MODULE_CMATH_LDFLAGS=$LIBM$as_nl"
+
+
+ if true; then
+ MODULE__RANDOM_TRUE=
+ MODULE__RANDOM_FALSE='#'
+else
+ MODULE__RANDOM_TRUE='#'
+ MODULE__RANDOM_FALSE=
+fi
+
+
+
+
+
+ if true; then
+ MODULE__ZONEINFO_TRUE=
+ MODULE__ZONEINFO_FALSE='#'
+else
+ MODULE__ZONEINFO_TRUE='#'
+ MODULE__ZONEINFO_FALSE=
+fi
+
+



@@ -20809,6 +20893,14 @@ if test -z "${MODULE_ARRAY_TRUE}" && test -z "${MODULE_ARRAY_FALSE}"; then
as_fn_error $? "conditional \"MODULE_ARRAY\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${MODULE__BISECT_TRUE}" && test -z "${MODULE__BISECT_FALSE}"; then
+ as_fn_error $? "conditional \"MODULE__BISECT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MODULE_CMATH_TRUE}" && test -z "${MODULE_CMATH_FALSE}"; then
+ as_fn_error $? "conditional \"MODULE_CMATH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${MODULE__CONTEXTVARS_TRUE}" && test -z "${MODULE__CONTEXTVARS_FALSE}"; then
as_fn_error $? "conditional \"MODULE__CONTEXTVARS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -20817,12 +20909,28 @@ if test -z "${MODULE__DATETIME_TRUE}" && test -z "${MODULE__DATETIME_FALSE}"; th
as_fn_error $? "conditional \"MODULE__DATETIME\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${MODULE__HEAPQ_TRUE}" && test -z "${MODULE__HEAPQ_FALSE}"; then
+ as_fn_error $? "conditional \"MODULE__HEAPQ\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MODULE__JSON_TRUE}" && test -z "${MODULE__JSON_FALSE}"; then
+ as_fn_error $? "conditional \"MODULE__JSON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${MODULE_MATH_TRUE}" && test -z "${MODULE_MATH_FALSE}"; then
as_fn_error $? "conditional \"MODULE_MATH\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${MODULE_CMATH_TRUE}" && test -z "${MODULE_CMATH_FALSE}"; then
- as_fn_error $? "conditional \"MODULE_CMATH\" was never defined.
+if test -z "${MODULE__PICKLE_TRUE}" && test -z "${MODULE__PICKLE_FALSE}"; then
+ as_fn_error $? "conditional \"MODULE__PICKLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MODULE__RANDOM_TRUE}" && test -z "${MODULE__RANDOM_FALSE}"; then
+ as_fn_error $? "conditional \"MODULE__RANDOM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MODULE__ZONEINFO_TRUE}" && test -z "${MODULE__ZONEINFO_FALSE}"; then
+ as_fn_error $? "conditional \"MODULE__ZONEINFO\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${MODULE_GRP_TRUE}" && test -z "${MODULE_GRP_FALSE}"; then
diff --git a/configure.ac b/configure.ac
index e0013c71ac8c1..925d7f9f575c8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6076,10 +6076,16 @@ PY_STDLIB_MOD_SIMPLE([time], [], [$TIMEMODULE_LIB])

dnl always enabled extension modules
PY_STDLIB_MOD_SIMPLE([array])
+PY_STDLIB_MOD_SIMPLE([_bisect])
+PY_STDLIB_MOD_SIMPLE([cmath], [], [$LIBM])
PY_STDLIB_MOD_SIMPLE([_contextvars])
PY_STDLIB_MOD_SIMPLE([_datetime], [], [$TIMEMODULE_LIB $LIBM])
+PY_STDLIB_MOD_SIMPLE([_heapq])
+PY_STDLIB_MOD_SIMPLE([_json])
PY_STDLIB_MOD_SIMPLE([math], [], [$LIBM])
-PY_STDLIB_MOD_SIMPLE([cmath], [], [$LIBM])
+PY_STDLIB_MOD_SIMPLE([_pickle])
+PY_STDLIB_MOD_SIMPLE([_random])
+PY_STDLIB_MOD_SIMPLE([_zoneinfo])

dnl platform specific extensions
PY_STDLIB_MOD([grp], [], [test "$ac_cv_func_getgrgid" = yes -o "$ac_cv_func_getgrgid_r" = yes])
diff --git a/setup.py b/setup.py
index b2a3f4eb7140d..a76df82c1b742 100644
--- a/setup.py
+++ b/setup.py
@@ -1004,18 +1004,15 @@ def detect_simple_extensions(self):
# libm is needed by delta_new() that uses round() and by accum() that
# uses modf().
self.addext(Extension('_datetime', ['_datetimemodule.c']))
- # zoneinfo module
- self.add(Extension('_zoneinfo', ['_zoneinfo.c']))
+ self.addext(Extension('_zoneinfo', ['_zoneinfo.c']))
# random number generator implemented in C
- self.add(Extension("_random", ["_randommodule.c"]))
- # bisect
- self.add(Extension("_bisect", ["_bisectmodule.c"]))
- # heapq
- self.add(Extension("_heapq", ["_heapqmodule.c"]))
+ self.addext(Extension("_random", ["_randommodule.c"]))
+ self.addext(Extension("_bisect", ["_bisectmodule.c"]))
+ self.addext(Extension("_heapq", ["_heapqmodule.c"]))
# C-optimized pickle replacement
- self.add(Extension("_pickle", ["_pickle.c"]))
+ self.addext(Extension("_pickle", ["_pickle.c"]))
# _json speedups
- self.add(Extension("_json", ["_json.c"]))
+ self.addext(Extension("_json", ["_json.c"]))

# profiler (_lsprof is for cProfile.py)
self.add(Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c']))

_______________________________________________
Python-checkins mailing list
Python-checkins@python.org
https://mail.python.org/mailman/listinfo/python-checkins