cpython/Objects
Eric Snow b2fc549278
gh-101758: Clean Up Uses of Import State (gh-101919)
This change is almost entirely moving code around and hiding import state behind internal API.  We introduce no changes to behavior, nor to non-internal API.  (Since there was already going to be a lot of churn, I took this as an opportunity to re-organize import.c into topically-grouped sections of code.)  The motivation is to simplify a number of upcoming changes.

Specific changes:

* move existing import-related code to import.c, wherever possible
* add internal API for interacting with import state (both global and per-interpreter)
* use only API outside of import.c (to limit churn there when changing the location, etc.)
* consolidate the import-related state of PyInterpreterState into a single struct field (this changes layout slightly)
* add macros for import state in import.c (to simplify changing the location)
* group code in import.c into sections
*remove _PyState_AddModule()

https://github.com/python/cpython/issues/101758
2023-02-15 15:32:31 -07:00
..
clinic gh-101409: Improve generated clinic code for self type checks (#101411) 2023-01-31 21:42:03 +01:00
stringlib gh-99537: Use Py_SETREF() function in C code (#99657) 2022-11-22 13:39:11 +01:00
abstract.c gh-99537: Use Py_SETREF(var, NULL) in C code (#99687) 2022-11-23 14:57:50 +01:00
boolobject.c gh-101266: Fix __sizeof__ for subclasses of int (#101394) 2023-02-05 10:02:53 +00:00
bytearrayobject.c bpo-15999: Accept arbitrary values for boolean parameters. (#15609) 2022-12-03 11:52:21 -08:00
bytes_methods.c gh-93033: Use wmemchr in stringlib (GH-93034) 2022-05-24 10:45:31 +09:00
bytesobject.c gh-101056: Fix memory leak in formatfloat() in bytesobject.c (#101057) 2023-01-16 16:16:07 +05:30
call.c gh-81057: Move the global Dict-Related Versions to _PyRuntimeState (gh-99497) 2022-11-16 10:37:29 -07:00
capsule.c gh-99537: Use Py_SETREF() function in C code (#99657) 2022-11-22 13:39:11 +01:00
cellobject.c gh-99300: Use Py_NewRef() in Objects/ directory (#99332) 2022-11-10 16:27:32 +01:00
classobject.c gh-99537: Use Py_SETREF(var, NULL) in C code (#99687) 2022-11-23 14:57:50 +01:00
codeobject.c GH-100117: Make co_lines more efficient (GH-100447) 2023-01-10 10:56:53 +00:00
complexobject.c gh-99300: Use Py_NewRef() in Objects/ directory (#99332) 2022-11-10 16:27:32 +01:00
descrobject.c GH-100942: Fix incorrect cast in property_copy(). (#100965) 2023-01-12 16:13:56 -06:00
dictnotes.txt bpo-46845: Reduce dict size when all keys are Unicode (GH-31564) 2022-03-02 08:09:28 +09:00
dictobject.c GH-101578: Normalize the current exception (GH-101607) 2023-02-08 09:31:12 +00:00
enumobject.c gh-99300: Use Py_NewRef() in Objects/ directory (#99335) 2022-11-10 22:22:02 +01:00
exception_handling_notes.txt gh-96455: update example in exception_handling_notes.txt to the 3.11RC bytecode (GH-96456) 2022-09-01 14:21:39 +01:00
exceptions.c GH-101578: Normalize the current exception (GH-101607) 2023-02-08 09:31:12 +00:00
fileobject.c gh-99537: Use Py_SETREF(var, NULL) in C code (#99687) 2022-11-23 14:57:50 +01:00
floatobject.c gh-99537: Use Py_SETREF() function in C code (#99657) 2022-11-22 13:39:11 +01:00
frame_layout.md GH-96421: Insert shim frame on entry to interpreter (GH-96319) 2022-11-10 12:34:57 +00:00
frameobject.c GH-87849: Simplify stack effect of SEND and specialize it for generators and coroutines. (GH-101788) 2023-02-13 11:24:55 +00:00
funcobject.c gh-101072: support default and kw default in PyEval_EvalCodeEx for 3.11+ (#101127) 2023-02-07 10:34:21 +01:00
genericaliasobject.c gh-99300: Use Py_NewRef() in Objects/ directory (#99335) 2022-11-10 22:22:02 +01:00
genobject.c GH-100762: Don't call gen.throw() in gen.close(), unless necessary. (GH-101013) 2023-01-24 17:25:37 +00:00
interpreteridobject.c bpo-35081: Move interpreteridobject.h to Include/internal/ (GH-28969) 2021-10-15 11:56:34 +02:00
iterobject.c gh-99300: Use Py_NewRef() in Objects/ directory (#99335) 2022-11-10 22:22:02 +01:00
listobject.c GH-101291: Refactor the PyLongObject struct into object header and PyLongValue struct. (GH-101292) 2023-01-30 10:03:04 +00:00
listsort.txt Fix typos in the Objects directory (GH-28766) 2021-10-06 16:57:10 -07:00
lnotab_notes.txt bpo-44525: Split calls into PRECALL and CALL (GH-30011) 2021-12-14 18:22:44 +00:00
locations.md GH-88116: Use a compact format to represent end line and column offsets. (GH-91666) 2022-04-21 16:10:37 +01:00
longobject.c gh-101266: Fix __sizeof__ for subclasses of int (#101394) 2023-02-05 10:02:53 +00:00
memoryobject.c gh-99300: Use Py_NewRef() in Objects/ directory (#99354) 2022-11-10 23:58:07 +01:00
methodobject.c gh-99300: Use Py_NewRef() in Objects/ directory (#99354) 2022-11-10 23:58:07 +01:00
moduleobject.c gh-101758: Clean Up Uses of Import State (gh-101919) 2023-02-15 15:32:31 -07:00
namespaceobject.c gh-99300: Replace Py_INCREF() with Py_NewRef() (#99530) 2022-11-16 18:34:24 +01:00
object_layout_312.gv GH-96068: Document object layout (GH-96069) 2022-08-23 13:55:43 +01:00
object_layout_312.png GH-96068: Document object layout (GH-96069) 2022-08-23 13:55:43 +01:00
object_layout_full_312.gv GH-96068: Document object layout (GH-96069) 2022-08-23 13:55:43 +01:00
object_layout_full_312.png GH-96068: Document object layout (GH-96069) 2022-08-23 13:55:43 +01:00
object_layout.md GH-96068: Document object layout (GH-96069) 2022-08-23 13:55:43 +01:00
object.c gh-101430: Update tracemalloc to handle presize properly. (gh-101745) 2023-02-10 08:30:03 +09:00
obmalloc.c gh-81057: Move More Globals to _PyRuntimeState (gh-100092) 2022-12-07 15:56:31 -07:00
odictobject.c gh-101747: Fix refleak in new OrderedDict repr (GH-101748) 2023-02-09 21:00:58 -06:00
picklebufobject.c gh-91118: Fix docstrings that do not honor --without-doc-strings (#31769) 2022-04-17 20:39:32 -07:00
rangeobject.c gh-100726: Optimize construction of range object for medium sized integers (#100810) 2023-01-21 19:33:08 +00:00
README Issue #18093: Factor out the programs that embed the runtime 2014-07-25 21:52:14 +10:00
setobject.c gh-99845: Use size_t type in __sizeof__() methods (#99846) 2022-11-30 17:22:52 +01:00
sliceobject.c gh-99537: Use Py_SETREF() function in C code (#99657) 2022-11-22 13:39:11 +01:00
structseq.c gh-99300: Use Py_NewRef() in Objects/ directory (#99354) 2022-11-10 23:58:07 +01:00
tupleobject.c GH-100110: Specialize FOR_ITER for tuples (GH-100109) 2022-12-09 10:27:01 +00:00
typeobject.c GH-101696: invalidate type version tag in _PyStaticType_Dealloc (#101697) 2023-02-08 23:32:15 +05:30
typeslots.inc bpo-41073: PyType_GetSlot() can now accept static types. (GH-21931) 2020-11-10 12:53:46 -08:00
typeslots.py bpo-41073: PyType_GetSlot() can now accept static types. (GH-21931) 2020-11-10 12:53:46 -08:00
unicodectype.c bpo-46670: Remove unused macros in the Objects directory (GH-31193) 2022-02-07 16:21:41 +01:00
unicodeobject.c gh-90111: Minor Cleanup for Runtime-Global Objects (gh-100254) 2022-12-14 11:53:57 -07:00
unicodetype_db.h bpo-47243: Duplicate entry in 'Objects/unicodetype_db.h' (GH-32376) 2022-09-28 06:57:14 -07:00
unionobject.c gh-99300: Replace Py_INCREF() with Py_NewRef() (#99530) 2022-11-16 18:34:24 +01:00
weakrefobject.c gh-99537: Use Py_SETREF() function in C code (#99657) 2022-11-22 13:39:11 +01:00

Source files for various builtin objects