Skip to content

Commit 718cee0

Browse files
author
Erlend Egeberg Aasland
authored
bpo-45847: Port _bisect, _heapq, _json, _pickle, _random, and _zoneinfo to PY_STDLIB_MOD_SIMPLE (GH-29689)
Automerge-Triggered-By: GH:tiran
1 parent 133c65a commit 718cee0

File tree

4 files changed

+136
-19
lines changed

4 files changed

+136
-19
lines changed

Modules/Setup.stdlib.in

+6
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,13 @@
2929
############################################################################
3030
# Modules that should always be present (POSIX and Windows):
3131
@MODULE_ARRAY_TRUE@array arraymodule.c
32+
@MODULE__BISECT_TRUE@_bisect _bisectmodule.c
3233
@MODULE__CONTEXTVARS_TRUE@_contextvars _contextvarsmodule.c
34+
@MODULE__HEAPQ_TRUE@_heapq _heapqmodule.c
35+
@MODULE__JSON_TRUE@_json _json.c
36+
@MODULE__PICKLE_TRUE@_pickle _pickle.c
37+
@MODULE__RANDOM_TRUE@_random _randommodule.c
38+
@MODULE__ZONEINFO_TRUE@_zoneinfo _zoneinfo.c
3339

3440
# needs libm
3541
@MODULE_MATH_TRUE@math mathmodule.c

configure

+117-9
Original file line numberDiff line numberDiff line change
@@ -688,14 +688,26 @@ MODULE_OSSAUDIODEV_FALSE
688688
MODULE_OSSAUDIODEV_TRUE
689689
MODULE_GRP_FALSE
690690
MODULE_GRP_TRUE
691-
MODULE_CMATH_FALSE
692-
MODULE_CMATH_TRUE
691+
MODULE__ZONEINFO_FALSE
692+
MODULE__ZONEINFO_TRUE
693+
MODULE__RANDOM_FALSE
694+
MODULE__RANDOM_TRUE
695+
MODULE__PICKLE_FALSE
696+
MODULE__PICKLE_TRUE
693697
MODULE_MATH_FALSE
694698
MODULE_MATH_TRUE
699+
MODULE__JSON_FALSE
700+
MODULE__JSON_TRUE
701+
MODULE__HEAPQ_FALSE
702+
MODULE__HEAPQ_TRUE
695703
MODULE__DATETIME_FALSE
696704
MODULE__DATETIME_TRUE
697705
MODULE__CONTEXTVARS_FALSE
698706
MODULE__CONTEXTVARS_TRUE
707+
MODULE_CMATH_FALSE
708+
MODULE_CMATH_TRUE
709+
MODULE__BISECT_FALSE
710+
MODULE__BISECT_TRUE
699711
MODULE_ARRAY_FALSE
700712
MODULE_ARRAY_TRUE
701713
MODULE_TIME_FALSE
@@ -19586,6 +19598,32 @@ fi
1958619598

1958719599

1958819600

19601+
if true; then
19602+
MODULE__BISECT_TRUE=
19603+
MODULE__BISECT_FALSE='#'
19604+
else
19605+
MODULE__BISECT_TRUE='#'
19606+
MODULE__BISECT_FALSE=
19607+
fi
19608+
19609+
19610+
19611+
19612+
19613+
if true; then
19614+
MODULE_CMATH_TRUE=
19615+
MODULE_CMATH_FALSE='#'
19616+
else
19617+
MODULE_CMATH_TRUE='#'
19618+
MODULE_CMATH_FALSE=
19619+
fi
19620+
19621+
19622+
19623+
as_fn_append MODULE_BLOCK "MODULE_CMATH_LDFLAGS=$LIBM$as_nl"
19624+
19625+
19626+
1958919627
if true; then
1959019628
MODULE__CONTEXTVARS_TRUE=
1959119629
MODULE__CONTEXTVARS_FALSE='#'
@@ -19612,6 +19650,30 @@ fi
1961219650

1961319651

1961419652

19653+
if true; then
19654+
MODULE__HEAPQ_TRUE=
19655+
MODULE__HEAPQ_FALSE='#'
19656+
else
19657+
MODULE__HEAPQ_TRUE='#'
19658+
MODULE__HEAPQ_FALSE=
19659+
fi
19660+
19661+
19662+
19663+
19664+
19665+
if true; then
19666+
MODULE__JSON_TRUE=
19667+
MODULE__JSON_FALSE='#'
19668+
else
19669+
MODULE__JSON_TRUE='#'
19670+
MODULE__JSON_FALSE=
19671+
fi
19672+
19673+
19674+
19675+
19676+
1961519677
if true; then
1961619678
MODULE_MATH_TRUE=
1961719679
MODULE_MATH_FALSE='#'
@@ -19627,16 +19689,38 @@ fi
1962719689

1962819690

1962919691
if true; then
19630-
MODULE_CMATH_TRUE=
19631-
MODULE_CMATH_FALSE='#'
19692+
MODULE__PICKLE_TRUE=
19693+
MODULE__PICKLE_FALSE='#'
1963219694
else
19633-
MODULE_CMATH_TRUE='#'
19634-
MODULE_CMATH_FALSE=
19695+
MODULE__PICKLE_TRUE='#'
19696+
MODULE__PICKLE_FALSE=
1963519697
fi
1963619698

1963719699

1963819700

19639-
as_fn_append MODULE_BLOCK "MODULE_CMATH_LDFLAGS=$LIBM$as_nl"
19701+
19702+
19703+
if true; then
19704+
MODULE__RANDOM_TRUE=
19705+
MODULE__RANDOM_FALSE='#'
19706+
else
19707+
MODULE__RANDOM_TRUE='#'
19708+
MODULE__RANDOM_FALSE=
19709+
fi
19710+
19711+
19712+
19713+
19714+
19715+
if true; then
19716+
MODULE__ZONEINFO_TRUE=
19717+
MODULE__ZONEINFO_FALSE='#'
19718+
else
19719+
MODULE__ZONEINFO_TRUE='#'
19720+
MODULE__ZONEINFO_FALSE=
19721+
fi
19722+
19723+
1964019724

1964119725

1964219726

@@ -20809,6 +20893,14 @@ if test -z "${MODULE_ARRAY_TRUE}" && test -z "${MODULE_ARRAY_FALSE}"; then
2080920893
as_fn_error $? "conditional \"MODULE_ARRAY\" was never defined.
2081020894
Usually this means the macro was only invoked conditionally." "$LINENO" 5
2081120895
fi
20896+
if test -z "${MODULE__BISECT_TRUE}" && test -z "${MODULE__BISECT_FALSE}"; then
20897+
as_fn_error $? "conditional \"MODULE__BISECT\" was never defined.
20898+
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20899+
fi
20900+
if test -z "${MODULE_CMATH_TRUE}" && test -z "${MODULE_CMATH_FALSE}"; then
20901+
as_fn_error $? "conditional \"MODULE_CMATH\" was never defined.
20902+
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20903+
fi
2081220904
if test -z "${MODULE__CONTEXTVARS_TRUE}" && test -z "${MODULE__CONTEXTVARS_FALSE}"; then
2081320905
as_fn_error $? "conditional \"MODULE__CONTEXTVARS\" was never defined.
2081420906
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
2081720909
as_fn_error $? "conditional \"MODULE__DATETIME\" was never defined.
2081820910
Usually this means the macro was only invoked conditionally." "$LINENO" 5
2081920911
fi
20912+
if test -z "${MODULE__HEAPQ_TRUE}" && test -z "${MODULE__HEAPQ_FALSE}"; then
20913+
as_fn_error $? "conditional \"MODULE__HEAPQ\" was never defined.
20914+
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20915+
fi
20916+
if test -z "${MODULE__JSON_TRUE}" && test -z "${MODULE__JSON_FALSE}"; then
20917+
as_fn_error $? "conditional \"MODULE__JSON\" was never defined.
20918+
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20919+
fi
2082020920
if test -z "${MODULE_MATH_TRUE}" && test -z "${MODULE_MATH_FALSE}"; then
2082120921
as_fn_error $? "conditional \"MODULE_MATH\" was never defined.
2082220922
Usually this means the macro was only invoked conditionally." "$LINENO" 5
2082320923
fi
20824-
if test -z "${MODULE_CMATH_TRUE}" && test -z "${MODULE_CMATH_FALSE}"; then
20825-
as_fn_error $? "conditional \"MODULE_CMATH\" was never defined.
20924+
if test -z "${MODULE__PICKLE_TRUE}" && test -z "${MODULE__PICKLE_FALSE}"; then
20925+
as_fn_error $? "conditional \"MODULE__PICKLE\" was never defined.
20926+
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20927+
fi
20928+
if test -z "${MODULE__RANDOM_TRUE}" && test -z "${MODULE__RANDOM_FALSE}"; then
20929+
as_fn_error $? "conditional \"MODULE__RANDOM\" was never defined.
20930+
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20931+
fi
20932+
if test -z "${MODULE__ZONEINFO_TRUE}" && test -z "${MODULE__ZONEINFO_FALSE}"; then
20933+
as_fn_error $? "conditional \"MODULE__ZONEINFO\" was never defined.
2082620934
Usually this means the macro was only invoked conditionally." "$LINENO" 5
2082720935
fi
2082820936
if test -z "${MODULE_GRP_TRUE}" && test -z "${MODULE_GRP_FALSE}"; then

configure.ac

+7-1
Original file line numberDiff line numberDiff line change
@@ -6076,10 +6076,16 @@ PY_STDLIB_MOD_SIMPLE([time], [], [$TIMEMODULE_LIB])
60766076

60776077
dnl always enabled extension modules
60786078
PY_STDLIB_MOD_SIMPLE([array])
6079+
PY_STDLIB_MOD_SIMPLE([_bisect])
6080+
PY_STDLIB_MOD_SIMPLE([cmath], [], [$LIBM])
60796081
PY_STDLIB_MOD_SIMPLE([_contextvars])
60806082
PY_STDLIB_MOD_SIMPLE([_datetime], [], [$TIMEMODULE_LIB $LIBM])
6083+
PY_STDLIB_MOD_SIMPLE([_heapq])
6084+
PY_STDLIB_MOD_SIMPLE([_json])
60816085
PY_STDLIB_MOD_SIMPLE([math], [], [$LIBM])
6082-
PY_STDLIB_MOD_SIMPLE([cmath], [], [$LIBM])
6086+
PY_STDLIB_MOD_SIMPLE([_pickle])
6087+
PY_STDLIB_MOD_SIMPLE([_random])
6088+
PY_STDLIB_MOD_SIMPLE([_zoneinfo])
60836089

60846090
dnl platform specific extensions
60856091
PY_STDLIB_MOD([grp], [], [test "$ac_cv_func_getgrgid" = yes -o "$ac_cv_func_getgrgid_r" = yes])

setup.py

+6-9
Original file line numberDiff line numberDiff line change
@@ -1004,18 +1004,15 @@ def detect_simple_extensions(self):
10041004
# libm is needed by delta_new() that uses round() and by accum() that
10051005
# uses modf().
10061006
self.addext(Extension('_datetime', ['_datetimemodule.c']))
1007-
# zoneinfo module
1008-
self.add(Extension('_zoneinfo', ['_zoneinfo.c']))
1007+
self.addext(Extension('_zoneinfo', ['_zoneinfo.c']))
10091008
# random number generator implemented in C
1010-
self.add(Extension("_random", ["_randommodule.c"]))
1011-
# bisect
1012-
self.add(Extension("_bisect", ["_bisectmodule.c"]))
1013-
# heapq
1014-
self.add(Extension("_heapq", ["_heapqmodule.c"]))
1009+
self.addext(Extension("_random", ["_randommodule.c"]))
1010+
self.addext(Extension("_bisect", ["_bisectmodule.c"]))
1011+
self.addext(Extension("_heapq", ["_heapqmodule.c"]))
10151012
# C-optimized pickle replacement
1016-
self.add(Extension("_pickle", ["_pickle.c"]))
1013+
self.addext(Extension("_pickle", ["_pickle.c"]))
10171014
# _json speedups
1018-
self.add(Extension("_json", ["_json.c"]))
1015+
self.addext(Extension("_json", ["_json.c"]))
10191016

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

0 commit comments

Comments
 (0)