mirror of
https://github.com/python/cpython.git
synced 2025-11-01 10:45:30 +00:00
Python built with "configure --with-trace-refs" (tracing references) is now ABI compatible with Python release build and debug build. Moreover, it now also supports the Limited API. Change Py_TRACE_REFS build: * Remove _PyObject_EXTRA_INIT macro. * The PyObject structure no longer has two extra members (_ob_prev and _ob_next). * Use a hash table (_Py_hashtable_t) to trace references (all objects): PyInterpreterState.object_state.refchain. * Py_TRACE_REFS build is now ABI compatible with release build and debug build. * Limited C API extensions can now be built with Py_TRACE_REFS: xxlimited, xxlimited_35, _testclinic_limited. * No longer rename PyModule_Create2() and PyModule_FromDefAndSpec2() functions to PyModule_Create2TraceRefs() and PyModule_FromDefAndSpec2TraceRefs(). * _Py_PrintReferenceAddresses() is now called before finalize_interp_delete() which deletes the refchain hash table. * test_tracemalloc find_trace() now also filters by size to ignore the memory allocated by _PyRefchain_Trace(). Test changes for Py_TRACE_REFS: * Add test.support.Py_TRACE_REFS constant. * Add test_sys.test_getobjects() to test sys.getobjects() function. * test_exceptions skips test_recursion_normalizing_with_no_memory() and test_memory_error_in_PyErr_PrintEx() if Python is built with Py_TRACE_REFS. * test_repl skips test_no_memory(). * test_capi skisp test_set_nomemory(). |
||
|---|---|---|
| .. | ||
| clinic | ||
| stringlib | ||
| abstract.c | ||
| boolobject.c | ||
| bytearrayobject.c | ||
| bytes_methods.c | ||
| bytesobject.c | ||
| call.c | ||
| capsule.c | ||
| cellobject.c | ||
| classobject.c | ||
| codeobject.c | ||
| complexobject.c | ||
| descrobject.c | ||
| dictnotes.txt | ||
| dictobject.c | ||
| enumobject.c | ||
| exception_handling_notes.txt | ||
| exceptions.c | ||
| fileobject.c | ||
| floatobject.c | ||
| frame_layout.md | ||
| frameobject.c | ||
| funcobject.c | ||
| genericaliasobject.c | ||
| genobject.c | ||
| interpreteridobject.c | ||
| iterobject.c | ||
| listobject.c | ||
| listsort.txt | ||
| lnotab_notes.txt | ||
| locations.md | ||
| longobject.c | ||
| memoryobject.c | ||
| methodobject.c | ||
| moduleobject.c | ||
| namespaceobject.c | ||
| object.c | ||
| object_layout.md | ||
| object_layout_312.gv | ||
| object_layout_312.png | ||
| object_layout_full_312.gv | ||
| object_layout_full_312.png | ||
| obmalloc.c | ||
| odictobject.c | ||
| picklebufobject.c | ||
| rangeobject.c | ||
| README | ||
| setobject.c | ||
| sliceobject.c | ||
| structseq.c | ||
| tupleobject.c | ||
| typeobject.c | ||
| typeslots.inc | ||
| typeslots.py | ||
| typevarobject.c | ||
| unicodectype.c | ||
| unicodeobject.c | ||
| unicodetype_db.h | ||
| unionobject.c | ||
| weakrefobject.c | ||
Source files for various builtin objects