diff options
author | Victor Stinner <vstinner@python.org> | 2021-04-21 22:52:52 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-21 22:52:52 (GMT) |
commit | cdad2724e6f7426372901cc5dedd8a462ba046a6 (patch) | |
tree | ca6a34bfdc6c05ea86d2ff2686ebd116750b2305 /Modules/Setup | |
parent | a32f8fe7133aad4f3cf8946534e3b79a5f2659da (diff) | |
download | cpython-cdad2724e6f7426372901cc5dedd8a462ba046a6.zip cpython-cdad2724e6f7426372901cc5dedd8a462ba046a6.tar.gz cpython-cdad2724e6f7426372901cc5dedd8a462ba046a6.tar.bz2 |
bpo-40137: Add pycore_moduleobject.h internal header (GH-25507)
Add pycore_moduleobject.h internal header file with static inline
functions to access module members:
* _PyModule_GetDict()
* _PyModule_GetDef()
* _PyModule_GetState()
These functions don't check at runtime if their argument has a valid
type and can be inlined even if Python is not built with LTO.
_PyType_GetModuleByDef() uses _PyModule_GetDef().
Replace PyModule_GetState() with _PyModule_GetState() in the
extension modules, considered as performance sensitive:
* _abc
* _functools
* _operator
* _pickle
* _queue
* _random
* _sre
* _struct
* _thread
* _winapi
* array
* posix
The following extensions are now built with the Py_BUILD_CORE_MODULE
macro defined, to be able to use the internal pycore_moduleobject.h
header: _abc, array, _operator, _queue, _sre, _struct.
Diffstat (limited to 'Modules/Setup')
-rw-r--r-- | Modules/Setup | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Modules/Setup b/Modules/Setup index cce7858..87c6a15 100644 --- a/Modules/Setup +++ b/Modules/Setup @@ -105,13 +105,13 @@ posix -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.c # posix errno errnomodule.c # posix (UNIX) errno values pwd pwdmodule.c # this is needed to find out the user's home dir # if $HOME is not set -_sre _sre.c # Fredrik Lundh's new regular expressions +_sre -DPy_BUILD_CORE_BUILTIN _sre.c # Fredrik Lundh's new regular expressions _codecs _codecsmodule.c # access to the builtin codecs and codec registry _weakref _weakref.c # weak references _functools -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _functoolsmodule.c # Tools for working with functions and callable objects -_operator _operator.c # operator.add() and similar goodies +_operator -DPy_BUILD_CORE_BUILTIN _operator.c # operator.add() and similar goodies _collections _collectionsmodule.c # Container types -_abc _abc.c # Abstract base classes +_abc -DPy_BUILD_CORE_BUILTIN _abc.c # Abstract base classes itertools itertoolsmodule.c # Functions creating iterators for efficient looping atexit atexitmodule.c # Register functions to be run at interpreter-shutdown _signal -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal signalmodule.c @@ -166,17 +166,17 @@ _symtable symtablemodule.c # Modules that should always be present (non UNIX dependent): -#array arraymodule.c # array objects +#array -DPy_BUILD_CORE_MODULE arraymodule.c # array objects #cmath cmathmodule.c _math.c -DPy_BUILD_CORE_MODULE # -lm # complex math library functions #math mathmodule.c _math.c -DPy_BUILD_CORE_MODULE # -lm # math library functions, e.g. sin() #_contextvars _contextvarsmodule.c # Context Variables -#_struct _struct.c # binary structure packing/unpacking +#_struct -DPy_BUILD_CORE_MODULE _struct.c # binary structure packing/unpacking #_weakref _weakref.c # basic weak reference support #_testcapi _testcapimodule.c # Python C API test module #_testinternalcapi _testinternalcapi.c -I$(srcdir)/Include/internal -DPy_BUILD_CORE_MODULE # Python internal C API test module #_random _randommodule.c -DPy_BUILD_CORE_MODULE # Random number generator #_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator -#_pickle _pickle.c # pickle accelerator +#_pickle -DPy_BUILD_CORE_MODULE _pickle.c # pickle accelerator #_datetime _datetimemodule.c # datetime accelerator #_zoneinfo _zoneinfo.c -DPy_BUILD_CORE_MODULE # zoneinfo accelerator #_bisect _bisectmodule.c # Bisection algorithms |