gh-76785: Rename _xxsubinterpreters to _interpreters (gh-117791)

See https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/26.
This commit is contained in:
Eric Snow 2024-04-24 10:18:24 -06:00 committed by GitHub
parent af3c1d817d
commit 03e3e31723
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
34 changed files with 546 additions and 539 deletions

View File

@ -54,7 +54,7 @@ struct atexit_state {
int callback_len;
};
// Export for '_xxinterpchannels' shared extension
// Export for '_interpchannels' shared extension
PyAPI_FUNC(int) _Py_AtExit(
PyInterpreterState *interp,
atexit_datacallbackfunc func,

View File

@ -9,7 +9,7 @@ extern "C" {
#endif
// Exported for the _xxinterpchannels module.
// Exported for the _interpchannels module.
PyAPI_FUNC(int) _PyBuffer_ReleaseInInterpreter(
PyInterpreterState *interp, Py_buffer *view);
PyAPI_FUNC(int) _PyBuffer_ReleaseInInterpreterAndRawFree(

View File

@ -77,10 +77,10 @@ _Py_IsMainInterpreterFinalizing(PyInterpreterState *interp)
interp == &_PyRuntime._main_interpreter);
}
// Export for _xxsubinterpreters module.
// Export for _interpreters module.
PyAPI_FUNC(PyObject *) _PyInterpreterState_GetIDObject(PyInterpreterState *);
// Export for _xxsubinterpreters module.
// Export for _interpreters module.
PyAPI_FUNC(int) _PyInterpreterState_SetRunningMain(PyInterpreterState *);
PyAPI_FUNC(void) _PyInterpreterState_SetNotRunningMain(PyInterpreterState *);
PyAPI_FUNC(int) _PyInterpreterState_IsRunningMain(PyInterpreterState *);

View File

@ -99,7 +99,7 @@ extern void _PyThread_AfterFork(struct _pythread_runtime_state *state);
// unset: -1 seconds, in nanoseconds
#define PyThread_UNSET_TIMEOUT ((PyTime_t)(-1 * 1000 * 1000 * 1000))
// Exported for the _xxinterpchannels module.
// Exported for the _interpchannels module.
PyAPI_FUNC(int) PyThread_ParseTimeoutArg(
PyObject *arg,
int blocking,
@ -111,7 +111,7 @@ PyAPI_FUNC(int) PyThread_ParseTimeoutArg(
* are returned, depending on whether the lock can be acquired within the
* timeout.
*/
// Exported for the _xxinterpchannels module.
// Exported for the _interpchannels module.
PyAPI_FUNC(PyLockStatus) PyThread_acquire_lock_timed_with_retries(
PyThread_type_lock,
PY_TIMEOUT_T microseconds);

View File

@ -114,7 +114,7 @@ def multi_interp_extensions_check(enabled=True):
This only applies to modules that haven't been imported yet.
It overrides the PyInterpreterConfig.check_multi_interp_extensions
setting (see support.run_in_subinterp_with_config() and
_xxsubinterpreters.create()).
_interpreters.create()).
Also see importlib.utils.allowing_all_extensions().
"""

View File

@ -2,10 +2,10 @@
import threading
import weakref
import _xxsubinterpreters as _interpreters
import _interpreters
# aliases:
from _xxsubinterpreters import (
from _interpreters import (
InterpreterError, InterpreterNotFoundError, NotShareableError,
is_shareable,
)

View File

@ -1,10 +1,10 @@
"""Cross-interpreter Channels High Level Module."""
import time
import _xxinterpchannels as _channels
import _interpchannels as _channels
# aliases:
from _xxinterpchannels import (
from _interpchannels import (
ChannelError, ChannelNotFoundError, ChannelClosedError,
ChannelEmptyError, ChannelNotEmptyError,
)

View File

@ -4,10 +4,10 @@ import pickle
import queue
import time
import weakref
import _xxinterpqueues as _queues
import _interpqueues as _queues
# aliases:
from _xxinterpqueues import (
from _interpqueues import (
QueueError, QueueNotFoundError,
)

View File

@ -13,9 +13,9 @@ from test.support import os_helper
from test.support import script_helper
_interpreters = import_helper.import_module('_xxsubinterpreters')
_interpreters = import_helper.import_module('_interpreters')
_testinternalcapi = import_helper.import_module('_testinternalcapi')
from _xxsubinterpreters import InterpreterNotFoundError
from _interpreters import InterpreterNotFoundError
##################################
@ -231,7 +231,7 @@ class ModuleTests(TestBase):
def test_import_in_interpreter(self):
_run_output(
_interpreters.create(),
'import _xxsubinterpreters as _interpreters',
'import _interpreters',
)
@ -273,7 +273,7 @@ class GetCurrentTests(TestBase):
main, *_ = _interpreters.get_main()
interp = _interpreters.create()
out = _run_output(interp, dedent("""
import _xxsubinterpreters as _interpreters
import _interpreters
cur, *_ = _interpreters.get_current()
print(cur)
assert isinstance(cur, int)
@ -296,7 +296,7 @@ class GetMainTests(TestBase):
[expected] = [id for id, *_ in _interpreters.list_all()]
interp = _interpreters.create()
out = _run_output(interp, dedent("""
import _xxsubinterpreters as _interpreters
import _interpreters
main, *_ = _interpreters.get_main()
print(main)
assert isinstance(main, int)
@ -323,7 +323,7 @@ class IsRunningTests(TestBase):
def test_from_subinterpreter(self):
interp = _interpreters.create()
out = _run_output(interp, dedent(f"""
import _xxsubinterpreters as _interpreters
import _interpreters
if _interpreters.is_running({interp}):
print(True)
else:
@ -385,7 +385,7 @@ class CreateTests(TestBase):
main, = [id for id, *_ in _interpreters.list_all()]
id1 = _interpreters.create()
out = _run_output(id1, dedent("""
import _xxsubinterpreters as _interpreters
import _interpreters
id = _interpreters.create()
print(id)
assert isinstance(id, int)
@ -402,7 +402,7 @@ class CreateTests(TestBase):
def f():
nonlocal id2
out = _run_output(id1, dedent("""
import _xxsubinterpreters as _interpreters
import _interpreters
id = _interpreters.create()
print(id)
"""))
@ -505,7 +505,7 @@ class DestroyTests(TestBase):
main, = [id for id, *_ in _interpreters.list_all()]
id = _interpreters.create()
script = dedent(f"""
import _xxsubinterpreters as _interpreters
import _interpreters
try:
_interpreters.destroy({id})
except _interpreters.InterpreterError:
@ -521,7 +521,7 @@ class DestroyTests(TestBase):
id1 = _interpreters.create()
id2 = _interpreters.create()
script = dedent(f"""
import _xxsubinterpreters as _interpreters
import _interpreters
_interpreters.destroy({id2})
""")
_interpreters.run_string(id1, script)
@ -862,7 +862,7 @@ class RunStringTests(TestBase):
script = dedent("""
from textwrap import dedent
import threading
import _xxsubinterpreters as _interpreters
import _interpreters
id = _interpreters.create()
def f():
_interpreters.run_string(id, dedent('''

View File

@ -42,7 +42,7 @@ try:
except ImportError:
_testsinglephase = None
try:
import _xxsubinterpreters as _interpreters
import _interpreters
except ModuleNotFoundError:
_interpreters = None

View File

@ -50,7 +50,7 @@ try:
except ImportError:
_testmultiphase = None
try:
import _xxsubinterpreters as _interpreters
import _interpreters
except ModuleNotFoundError:
_interpreters = None
try:

View File

@ -27,7 +27,7 @@ try:
except ImportError:
_testmultiphase = None
try:
import _xxsubinterpreters as _interpreters
import _interpreters
except ModuleNotFoundError:
_interpreters = None

View File

@ -9,7 +9,7 @@ import unittest
from test import support
from test.support import import_helper
# Raise SkipTest if subinterpreters not supported.
_interpreters = import_helper.import_module('_xxsubinterpreters')
_interpreters = import_helper.import_module('_interpreters')
from test.support import Py_GIL_DISABLED
from test.support import interpreters
from test.support.interpreters import (
@ -385,7 +385,7 @@ class TestInterpreterIsRunning(TestBase):
def test_from_subinterpreter(self):
interp = interpreters.create()
out = _run_output(interp, dedent(f"""
import _xxsubinterpreters as _interpreters
import _interpreters
if _interpreters.is_running({interp.id}):
print(True)
else:
@ -876,7 +876,7 @@ class TestInterpreterExec(TestBase):
with self.assertRaisesRegex(InterpreterError, 'unrecognized'):
interp.exec('raise Exception("it worked!")')
# test_xxsubinterpreters covers the remaining
# test__interpreters covers the remaining
# Interpreter.exec() behavior.
@ -1290,7 +1290,7 @@ class LowLevelTests(TestBase):
self.assertEqual(whence, _interpreters.WHENCE_RUNTIME)
script = f"""
import {_interpreters.__name__} as _interpreters
import _interpreters
interpid, whence = _interpreters.get_current()
print((interpid, whence))
"""
@ -1333,7 +1333,7 @@ class LowLevelTests(TestBase):
with self.subTest('via interp from _interpreters'):
text = self.run_and_capture(interpid2, f"""
import {_interpreters.__name__} as _interpreters
import _interpreters
print(
_interpreters.list_all())
""")
@ -1352,7 +1352,7 @@ class LowLevelTests(TestBase):
(interpid5, _interpreters.WHENCE_STDLIB),
]
text = self.run_temp_from_capi(f"""
import {_interpreters.__name__} as _interpreters
import _interpreters
_interpreters.create()
print(
_interpreters.list_all())
@ -1507,7 +1507,7 @@ class LowLevelTests(TestBase):
with self.subTest('from C-API, running'):
text = self.run_temp_from_capi(dedent(f"""
import {_interpreters.__name__} as _interpreters
import _interpreters
interpid, *_ = _interpreters.get_current()
print(_interpreters.whence(interpid))
"""),
@ -1518,7 +1518,7 @@ class LowLevelTests(TestBase):
with self.subTest('from legacy C-API, running'):
...
text = self.run_temp_from_capi(dedent(f"""
import {_interpreters.__name__} as _interpreters
import _interpreters
interpid, *_ = _interpreters.get_current()
print(_interpreters.whence(interpid))
"""),

View File

@ -7,7 +7,7 @@ import time
from test.support import import_helper
# Raise SkipTest if subinterpreters not supported.
_channels = import_helper.import_module('_xxinterpchannels')
_channels = import_helper.import_module('_interpchannels')
from test.support import interpreters
from test.support.interpreters import channels
from .utils import _run_output, TestBase
@ -22,7 +22,7 @@ class LowLevelTests(TestBase):
# encountered by the high-level module, thus they
# mostly shouldn't matter as much.
# Additional tests are found in Lib/test/test__xxinterpchannels.py.
# Additional tests are found in Lib/test/test__interpchannels.py.
# XXX Those should be either moved to LowLevelTests or eliminated
# in favor of high-level tests in this file.

View File

@ -10,7 +10,7 @@ from test import support
from test.support import import_helper
from test.support import os_helper
# Raise SkipTest if subinterpreters not supported.
import_helper.import_module('_xxsubinterpreters')
import_helper.import_module('_interpreters')
from .utils import TestBase

View File

@ -7,7 +7,7 @@ import time
from test.support import import_helper, Py_DEBUG
# Raise SkipTest if subinterpreters not supported.
_queues = import_helper.import_module('_xxinterpqueues')
_queues = import_helper.import_module('_interpqueues')
from test.support import interpreters
from test.support.interpreters import queues
from .utils import _run_output, TestBase as _TestBase

View File

@ -5,7 +5,7 @@ from test import support
from test.support import import_helper
from test.support import threading_helper
# Raise SkipTest if subinterpreters not supported.
import_helper.import_module('_xxsubinterpreters')
import_helper.import_module('_interpreters')
from test.support import interpreters
from .utils import TestBase

View File

@ -21,7 +21,7 @@ from test import support
# We would use test.support.import_helper.import_module(),
# but the indirect import of test.support.os_helper causes refleaks.
try:
import _xxsubinterpreters as _interpreters
import _interpreters
except ImportError as exc:
raise unittest.SkipTest(str(exc))
from test.support import interpreters

View File

@ -1686,11 +1686,11 @@ Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule
Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c $(srcdir)/Modules/posixmodule.h
Modules/_xxsubinterpretersmodule.o: $(srcdir)/Modules/_xxsubinterpretersmodule.c $(srcdir)/Modules/_interpreters_common.h
Modules/_interpretersmodule.o: $(srcdir)/Modules/_interpretersmodule.c $(srcdir)/Modules/_interpreters_common.h
Modules/_xxinterpqueuesmodule.o: $(srcdir)/Modules/_xxinterpqueuesmodule.c $(srcdir)/Modules/_interpreters_common.h
Modules/_interpqueuesmodule.o: $(srcdir)/Modules/_interpqueuesmodule.c $(srcdir)/Modules/_interpreters_common.h
Modules/_xxinterpchannelsmodule.o: $(srcdir)/Modules/_xxinterpchannelsmodule.c $(srcdir)/Modules/_interpreters_common.h
Modules/_interpchannelsmodule.o: $(srcdir)/Modules/_interpchannelsmodule.c $(srcdir)/Modules/_interpreters_common.h
Python/crossinterp.o: $(srcdir)/Python/crossinterp.c $(srcdir)/Python/crossinterp_data_lookup.h $(srcdir)/Python/crossinterp_exceptions.h

View File

@ -0,0 +1,6 @@
We've exposed the low-level :mod:`!_interpreters` module for the sake of the
PyPI implementation of :pep:`734`. It was sometimes available as the
:mod:`!_xxsubinterpreters` module and was formerly used only for testing. For
the most part, it should be considered an internal module, like :mod:`!_thread`
and :mod:`!_imp`. See
https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/26.

View File

@ -137,6 +137,9 @@ PYTHONPATH=$(COREPYTHONPATH)
#_datetime _datetimemodule.c
#_decimal _decimal/_decimal.c
#_heapq _heapqmodule.c
#_interpchannels _interpchannelsmodule.c
#_interpqueues _interpqueuesmodule.c
#_interpreters _interpretersmodule.c
#_json _json.c
#_lsprof _lsprof.c rotatingtree.c
#_multiprocessing -I$(srcdir)/Modules/_multiprocessing _multiprocessing/multiprocessing.c _multiprocessing/semaphore.c
@ -271,9 +274,6 @@ PYTHONPATH=$(COREPYTHONPATH)
# Testing
#_xxsubinterpreters _xxsubinterpretersmodule.c
#_xxinterpchannels _xxinterpchannelsmodule.c
#_xxinterpqueues _xxinterpqueuesmodule.c
#_xxtestfuzz _xxtestfuzz/_xxtestfuzz.c _xxtestfuzz/fuzzer.c
#_testbuffer _testbuffer.c
#_testinternalcapi _testinternalcapi.c

View File

@ -43,9 +43,10 @@
@MODULE__STRUCT_TRUE@_struct _struct.c
# build supports subinterpreters
@MODULE__XXSUBINTERPRETERS_TRUE@_xxsubinterpreters _xxsubinterpretersmodule.c
@MODULE__XXINTERPCHANNELS_TRUE@_xxinterpchannels _xxinterpchannelsmodule.c
@MODULE__XXINTERPQUEUES_TRUE@_xxinterpqueues _xxinterpqueuesmodule.c
@MODULE__INTERPRETERS_TRUE@_interpreters _interpretersmodule.c
@MODULE__INTERPCHANNELS_TRUE@_interpchannels _interpchannelsmodule.c
@MODULE__INTERPQUEUES_TRUE@_interpqueues _interpqueuesmodule.c
@MODULE__ZONEINFO_TRUE@_zoneinfo _zoneinfo.c
# needs libm

View File

@ -84,7 +84,7 @@ channel's queue, which are safely managed via the _PyCrossInterpreterData_*()
API.. The module does not create any objects that are shared globally.
*/
#define MODULE_NAME _xxinterpchannels
#define MODULE_NAME _interpchannels
#define MODULE_NAME_STR Py_STRINGIFY(MODULE_NAME)
#define MODINIT_FUNC_NAME RESOLVE_MODINIT_FUNC_NAME(MODULE_NAME)

View File

@ -13,7 +13,7 @@
#undef REGISTERS_HEAP_TYPES
#define MODULE_NAME _xxinterpqueues
#define MODULE_NAME _interpqueues
#define MODULE_NAME_STR Py_STRINGIFY(MODULE_NAME)
#define MODINIT_FUNC_NAME RESOLVE_MODINIT_FUNC_NAME(MODULE_NAME)

View File

@ -23,7 +23,7 @@
#include "_interpreters_common.h"
#define MODULE_NAME _xxsubinterpreters
#define MODULE_NAME _interpreters
#define MODULE_NAME_STR Py_STRINGIFY(MODULE_NAME)
#define MODINIT_FUNC_NAME RESOLVE_MODINIT_FUNC_NAME(MODULE_NAME)

View File

@ -35,9 +35,9 @@ extern PyObject* PyInit__codecs(void);
extern PyObject* PyInit__weakref(void);
/* XXX: These two should really be extracted to standalone extensions. */
extern PyObject* PyInit_xxsubtype(void);
extern PyObject* PyInit__xxsubinterpreters(void);
extern PyObject* PyInit__xxinterpchannels(void);
extern PyObject* PyInit__xxinterpqueues(void);
extern PyObject* PyInit__interpreters(void);
extern PyObject* PyInit__interpchannels(void);
extern PyObject* PyInit__interpqueues(void);
extern PyObject* PyInit__random(void);
extern PyObject* PyInit_itertools(void);
extern PyObject* PyInit__collections(void);
@ -139,9 +139,9 @@ struct _inittab _PyImport_Inittab[] = {
{"_json", PyInit__json},
{"xxsubtype", PyInit_xxsubtype},
{"_xxsubinterpreters", PyInit__xxsubinterpreters},
{"_xxinterpchannels", PyInit__xxinterpchannels},
{"_xxinterpqueues", PyInit__xxinterpqueues},
{"_interpreters", PyInit__interpreters},
{"_interpchannels", PyInit__interpchannels},
{"_interpqueues", PyInit__interpqueues},
#ifdef _Py_HAVE_ZLIB
{"zlib", PyInit_zlib},
#endif

View File

@ -465,9 +465,9 @@
<ClCompile Include="..\Modules\_typingmodule.c" />
<ClCompile Include="..\Modules\timemodule.c" />
<ClCompile Include="..\Modules\xxsubtype.c" />
<ClCompile Include="..\Modules\_xxsubinterpretersmodule.c" />
<ClCompile Include="..\Modules\_xxinterpchannelsmodule.c" />
<ClCompile Include="..\Modules\_xxinterpqueuesmodule.c" />
<ClCompile Include="..\Modules\_interpretersmodule.c" />
<ClCompile Include="..\Modules\_interpchannelsmodule.c" />
<ClCompile Include="..\Modules\_interpqueuesmodule.c" />
<ClCompile Include="..\Modules\_io\fileio.c" />
<ClCompile Include="..\Modules\_io\bytesio.c" />
<ClCompile Include="..\Modules\_io\stringio.c" />

View File

@ -1547,13 +1547,13 @@
<ClCompile Include="..\Parser\peg_api.c">
<Filter>Parser</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_xxsubinterpretersmodule.c">
<ClCompile Include="..\Modules\_interpretersmodule.c">
<Filter>Modules</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_xxinterpchannelsmodule.c">
<ClCompile Include="..\Modules\_interpchannelsmodule.c">
<Filter>Modules</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_xxinterpqueuesmodule.c">
<ClCompile Include="..\Modules\_interpqueuesmodule.c">
<Filter>Modules</Filter>
</ClCompile>
<ClCompile Include="..\Parser\string_parser.c">

View File

@ -37,6 +37,9 @@ static const char* _Py_stdlib_module_names[] = {
"_hashlib",
"_heapq",
"_imp",
"_interpchannels",
"_interpqueues",
"_interpreters",
"_io",
"_ios_support",
"_json",

View File

@ -36,9 +36,6 @@ IGNORE = {
'_testmultiphase',
'_testsinglephase',
'_testexternalinspection',
'_xxsubinterpreters',
'_xxinterpchannels',
'_xxinterpqueues',
'_xxtestfuzz',
'idlelib.idle_test',
'test',

View File

@ -164,8 +164,8 @@ Python/pylifecycle.c _Py_FatalErrorFormat reentrant -
Python/pylifecycle.c fatal_error reentrant -
# explicitly protected, internal-only
Modules/_xxinterpchannelsmodule.c - _globals -
Modules/_xxinterpqueuesmodule.c - _globals -
Modules/_interpchannelsmodule.c - _globals -
Modules/_interpqueuesmodule.c - _globals -
# set once during module init
Modules/_decimal/_decimal.c - minalloc_is_set -
@ -246,11 +246,11 @@ Modules/_struct.c - bigendian_table -
Modules/_struct.c - lilendian_table -
Modules/_struct.c - native_table -
Modules/_tkinter.c - state_key -
Modules/_xxinterpchannelsmodule.c - _channelid_end_recv -
Modules/_xxinterpchannelsmodule.c - _channelid_end_send -
Modules/_interpchannelsmodule.c - _channelid_end_recv -
Modules/_interpchannelsmodule.c - _channelid_end_send -
Modules/_zoneinfo.c - DAYS_BEFORE_MONTH -
Modules/_zoneinfo.c - DAYS_IN_MONTH -
Modules/_xxsubinterpretersmodule.c - no_exception -
Modules/_interpretersmodule.c - no_exception -
Modules/arraymodule.c - descriptors -
Modules/arraymodule.c - emptybuf -
Modules/cjkcodecs/_codecs_cn.c - _mapping_list -

Can't render this file because it has a wrong number of fields in line 4.

84
configure generated vendored
View File

@ -775,12 +775,12 @@ MODULE__MULTIPROCESSING_FALSE
MODULE__MULTIPROCESSING_TRUE
MODULE__ZONEINFO_FALSE
MODULE__ZONEINFO_TRUE
MODULE__XXINTERPQUEUES_FALSE
MODULE__XXINTERPQUEUES_TRUE
MODULE__XXINTERPCHANNELS_FALSE
MODULE__XXINTERPCHANNELS_TRUE
MODULE__XXSUBINTERPRETERS_FALSE
MODULE__XXSUBINTERPRETERS_TRUE
MODULE__INTERPQUEUES_FALSE
MODULE__INTERPQUEUES_TRUE
MODULE__INTERPCHANNELS_FALSE
MODULE__INTERPCHANNELS_TRUE
MODULE__INTERPRETERS_FALSE
MODULE__INTERPRETERS_TRUE
MODULE__TYPING_FALSE
MODULE__TYPING_TRUE
MODULE__STRUCT_FALSE
@ -28659,9 +28659,9 @@ case $ac_sys_system in #(
py_cv_module__posixsubprocess=n/a
py_cv_module__scproxy=n/a
py_cv_module__tkinter=n/a
py_cv_module__xxsubinterpreters=n/a
py_cv_module__xxinterpchannels=n/a
py_cv_module__xxinterpqueues=n/a
py_cv_module__interpreters=n/a
py_cv_module__interpchannels=n/a
py_cv_module__interpqueues=n/a
py_cv_module_grp=n/a
py_cv_module_pwd=n/a
py_cv_module_resource=n/a
@ -29126,20 +29126,20 @@ then :
fi
if test "$py_cv_module__xxsubinterpreters" != "n/a"
if test "$py_cv_module__interpreters" != "n/a"
then :
py_cv_module__xxsubinterpreters=yes
py_cv_module__interpreters=yes
fi
if test "$py_cv_module__xxsubinterpreters" = yes; then
MODULE__XXSUBINTERPRETERS_TRUE=
MODULE__XXSUBINTERPRETERS_FALSE='#'
if test "$py_cv_module__interpreters" = yes; then
MODULE__INTERPRETERS_TRUE=
MODULE__INTERPRETERS_FALSE='#'
else
MODULE__XXSUBINTERPRETERS_TRUE='#'
MODULE__XXSUBINTERPRETERS_FALSE=
MODULE__INTERPRETERS_TRUE='#'
MODULE__INTERPRETERS_FALSE=
fi
as_fn_append MODULE_BLOCK "MODULE__XXSUBINTERPRETERS_STATE=$py_cv_module__xxsubinterpreters$as_nl"
if test "x$py_cv_module__xxsubinterpreters" = xyes
as_fn_append MODULE_BLOCK "MODULE__INTERPRETERS_STATE=$py_cv_module__interpreters$as_nl"
if test "x$py_cv_module__interpreters" = xyes
then :
@ -29148,20 +29148,20 @@ then :
fi
if test "$py_cv_module__xxinterpchannels" != "n/a"
if test "$py_cv_module__interpchannels" != "n/a"
then :
py_cv_module__xxinterpchannels=yes
py_cv_module__interpchannels=yes
fi
if test "$py_cv_module__xxinterpchannels" = yes; then
MODULE__XXINTERPCHANNELS_TRUE=
MODULE__XXINTERPCHANNELS_FALSE='#'
if test "$py_cv_module__interpchannels" = yes; then
MODULE__INTERPCHANNELS_TRUE=
MODULE__INTERPCHANNELS_FALSE='#'
else
MODULE__XXINTERPCHANNELS_TRUE='#'
MODULE__XXINTERPCHANNELS_FALSE=
MODULE__INTERPCHANNELS_TRUE='#'
MODULE__INTERPCHANNELS_FALSE=
fi
as_fn_append MODULE_BLOCK "MODULE__XXINTERPCHANNELS_STATE=$py_cv_module__xxinterpchannels$as_nl"
if test "x$py_cv_module__xxinterpchannels" = xyes
as_fn_append MODULE_BLOCK "MODULE__INTERPCHANNELS_STATE=$py_cv_module__interpchannels$as_nl"
if test "x$py_cv_module__interpchannels" = xyes
then :
@ -29170,20 +29170,20 @@ then :
fi
if test "$py_cv_module__xxinterpqueues" != "n/a"
if test "$py_cv_module__interpqueues" != "n/a"
then :
py_cv_module__xxinterpqueues=yes
py_cv_module__interpqueues=yes
fi
if test "$py_cv_module__xxinterpqueues" = yes; then
MODULE__XXINTERPQUEUES_TRUE=
MODULE__XXINTERPQUEUES_FALSE='#'
if test "$py_cv_module__interpqueues" = yes; then
MODULE__INTERPQUEUES_TRUE=
MODULE__INTERPQUEUES_FALSE='#'
else
MODULE__XXINTERPQUEUES_TRUE='#'
MODULE__XXINTERPQUEUES_FALSE=
MODULE__INTERPQUEUES_TRUE='#'
MODULE__INTERPQUEUES_FALSE=
fi
as_fn_append MODULE_BLOCK "MODULE__XXINTERPQUEUES_STATE=$py_cv_module__xxinterpqueues$as_nl"
if test "x$py_cv_module__xxinterpqueues" = xyes
as_fn_append MODULE_BLOCK "MODULE__INTERPQUEUES_STATE=$py_cv_module__interpqueues$as_nl"
if test "x$py_cv_module__interpqueues" = xyes
then :
@ -31532,16 +31532,16 @@ if test -z "${MODULE__TYPING_TRUE}" && test -z "${MODULE__TYPING_FALSE}"; then
as_fn_error $? "conditional \"MODULE__TYPING\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${MODULE__XXSUBINTERPRETERS_TRUE}" && test -z "${MODULE__XXSUBINTERPRETERS_FALSE}"; then
as_fn_error $? "conditional \"MODULE__XXSUBINTERPRETERS\" was never defined.
if test -z "${MODULE__INTERPRETERS_TRUE}" && test -z "${MODULE__INTERPRETERS_FALSE}"; then
as_fn_error $? "conditional \"MODULE__INTERPRETERS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${MODULE__XXINTERPCHANNELS_TRUE}" && test -z "${MODULE__XXINTERPCHANNELS_FALSE}"; then
as_fn_error $? "conditional \"MODULE__XXINTERPCHANNELS\" was never defined.
if test -z "${MODULE__INTERPCHANNELS_TRUE}" && test -z "${MODULE__INTERPCHANNELS_FALSE}"; then
as_fn_error $? "conditional \"MODULE__INTERPCHANNELS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${MODULE__XXINTERPQUEUES_TRUE}" && test -z "${MODULE__XXINTERPQUEUES_FALSE}"; then
as_fn_error $? "conditional \"MODULE__XXINTERPQUEUES\" was never defined.
if test -z "${MODULE__INTERPQUEUES_TRUE}" && test -z "${MODULE__INTERPQUEUES_FALSE}"; then
as_fn_error $? "conditional \"MODULE__INTERPQUEUES\" 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

View File

@ -7433,9 +7433,9 @@ AS_CASE([$ac_sys_system],
[_posixsubprocess],
[_scproxy],
[_tkinter],
[_xxsubinterpreters],
[_xxinterpchannels],
[_xxinterpqueues],
[_interpreters],
[_interpchannels],
[_interpqueues],
[grp],
[pwd],
[resource],
@ -7558,9 +7558,9 @@ PY_STDLIB_MOD_SIMPLE([_random])
PY_STDLIB_MOD_SIMPLE([select])
PY_STDLIB_MOD_SIMPLE([_struct])
PY_STDLIB_MOD_SIMPLE([_typing])
PY_STDLIB_MOD_SIMPLE([_xxsubinterpreters])
PY_STDLIB_MOD_SIMPLE([_xxinterpchannels])
PY_STDLIB_MOD_SIMPLE([_xxinterpqueues])
PY_STDLIB_MOD_SIMPLE([_interpreters])
PY_STDLIB_MOD_SIMPLE([_interpchannels])
PY_STDLIB_MOD_SIMPLE([_interpqueues])
PY_STDLIB_MOD_SIMPLE([_zoneinfo])
dnl multiprocessing modules