mirror of
https://github.com/python/cpython.git
synced 2024-11-21 12:59:38 +01:00
See https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/26.
This commit is contained in:
parent
af3c1d817d
commit
03e3e31723
@ -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,
|
||||
|
@ -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(
|
||||
|
@ -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 *);
|
||||
|
@ -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);
|
||||
|
@ -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().
|
||||
"""
|
||||
|
@ -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,
|
||||
)
|
||||
|
@ -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,
|
||||
)
|
||||
|
@ -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,
|
||||
)
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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('''
|
@ -42,7 +42,7 @@ try:
|
||||
except ImportError:
|
||||
_testsinglephase = None
|
||||
try:
|
||||
import _xxsubinterpreters as _interpreters
|
||||
import _interpreters
|
||||
except ModuleNotFoundError:
|
||||
_interpreters = None
|
||||
|
||||
|
@ -50,7 +50,7 @@ try:
|
||||
except ImportError:
|
||||
_testmultiphase = None
|
||||
try:
|
||||
import _xxsubinterpreters as _interpreters
|
||||
import _interpreters
|
||||
except ModuleNotFoundError:
|
||||
_interpreters = None
|
||||
try:
|
||||
|
@ -27,7 +27,7 @@ try:
|
||||
except ImportError:
|
||||
_testmultiphase = None
|
||||
try:
|
||||
import _xxsubinterpreters as _interpreters
|
||||
import _interpreters
|
||||
except ModuleNotFoundError:
|
||||
_interpreters = None
|
||||
|
||||
|
@ -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))
|
||||
"""),
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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.
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
12
PC/config.c
12
PC/config.c
@ -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
|
||||
|
@ -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" />
|
||||
|
@ -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">
|
||||
|
3
Python/stdlib_module_names.h
generated
3
Python/stdlib_module_names.h
generated
@ -37,6 +37,9 @@ static const char* _Py_stdlib_module_names[] = {
|
||||
"_hashlib",
|
||||
"_heapq",
|
||||
"_imp",
|
||||
"_interpchannels",
|
||||
"_interpqueues",
|
||||
"_interpreters",
|
||||
"_io",
|
||||
"_ios_support",
|
||||
"_json",
|
||||
|
@ -36,9 +36,6 @@ IGNORE = {
|
||||
'_testmultiphase',
|
||||
'_testsinglephase',
|
||||
'_testexternalinspection',
|
||||
'_xxsubinterpreters',
|
||||
'_xxinterpchannels',
|
||||
'_xxinterpqueues',
|
||||
'_xxtestfuzz',
|
||||
'idlelib.idle_test',
|
||||
'test',
|
||||
|
@ -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
84
configure
generated
vendored
@ -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
|
||||
|
12
configure.ac
12
configure.ac
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user