/opt/alt/python38/include/python3.8
NameSizeModeActions
cpython/-0755rm
internal/-0755rm
abstract.h302860644editdlrm
asdl.h12290644editdlrm
ast.h9480644editdlrm
bitset.h4680644editdlrm
bltinmodule.h2640644editdlrm
boolobject.h8860644editdlrm
bytearrayobject.h21140644editdlrm
bytesobject.h84930644editdlrm
bytes_methods.h33010644editdlrm
cellobject.h7130644editdlrm
ceval.h83660644editdlrm
classobject.h17100644editdlrm
code.h71780644editdlrm
codecs.h67930644editdlrm
compile.h35820644editdlrm
complexobject.h18070644editdlrm
context.h20140644editdlrm
datetime.h92600644editdlrm
descrobject.h30190644editdlrm
dictobject.h37160644editdlrm
dtoa.h4580644editdlrm
dynamic_annotations.h224690644editdlrm
enumobject.h2530644editdlrm
errcode.h16950644editdlrm
eval.h12090644editdlrm
fileobject.h15710644editdlrm
fileutils.h43520644editdlrm
floatobject.h47940644editdlrm
frameobject.h33170644editdlrm
funcobject.h42000644editdlrm
genobject.h37200644editdlrm
graminit.h21180644editdlrm
grammar.h18210644editdlrm
import.h49260644editdlrm
interpreteridobject.h3340644editdlrm
intrcheck.h8610644editdlrm
iterobject.h5670644editdlrm
listobject.h29270644editdlrm
longintrepr.h37990644editdlrm
longobject.h95200644editdlrm
marshal.h8030644editdlrm
memoryobject.h27650644editdlrm
methodobject.h44060644editdlrm
modsupport.h95910644editdlrm
moduleobject.h23620644editdlrm
namespaceobject.h3490644editdlrm
node.h13280644editdlrm
object.h295990644editdlrm
objimpl.h105370644editdlrm
odictobject.h13000644editdlrm
opcode.h51640644editdlrm
osdefs.h7370644editdlrm
osmodule.h2910644editdlrm
parsetok.h29580644editdlrm
patchlevel.h12990644editdlrm
picklebufobject.h8470644editdlrm
pyarena.h27440644editdlrm
pycapsule.h17260644editdlrm
pyconfig-64.h475790644editdlrm
pyconfig.h1610644editdlrm
pyctype.h13870644editdlrm
pydebug.h12140644editdlrm
pydtrace.h24130644editdlrm
pyerrors.h127860644editdlrm
pyexpat.h25720644editdlrm
pyfpe.h3410644editdlrm
pyhash.h41400644editdlrm
pylifecycle.h20810644editdlrm
pymacconfig.h29890644editdlrm
pymacro.h37780644editdlrm
pymath.h83120644editdlrm
pymem.h54060644editdlrm
pyport.h302210644editdlrm
pystate.h46860644editdlrm
pystrcmp.h4360644editdlrm
pystrhex.h8490644editdlrm
pystrtod.h14830644editdlrm
Python-ast.h264910644editdlrm
Python.h36150644editdlrm
pythonrun.h76450644editdlrm
pythread.h56600644editdlrm
pytime.h89260644editdlrm
py_curses.h24770644editdlrm
rangeobject.h6290644editdlrm
setobject.h33620644editdlrm
sliceobject.h25170644editdlrm
structmember.h20300644editdlrm
structseq.h13770644editdlrm
symtable.h53080644editdlrm
sysmodule.h12420644editdlrm
token.h24290644editdlrm
traceback.h6010644editdlrm
tracemalloc.h11140644editdlrm
tupleobject.h16610644editdlrm
typeslots.h22530644editdlrm
ucnhash.h10560644editdlrm
unicodeobject.h357320644editdlrm
warnings.h17760644editdlrm
weakrefobject.h28660644editdlrm
Edit: /opt/alt/python38/include/python3.8/pyarena.h (2744B)
/* An arena-like memory interface for the compiler. */ #ifndef Py_LIMITED_API #ifndef Py_PYARENA_H #define Py_PYARENA_H #ifdef __cplusplus extern "C" { #endif typedef struct _arena PyArena; /* PyArena_New() and PyArena_Free() create a new arena and free it, respectively. Once an arena has been created, it can be used to allocate memory via PyArena_Malloc(). Pointers to PyObject can also be registered with the arena via PyArena_AddPyObject(), and the arena will ensure that the PyObjects stay alive at least until PyArena_Free() is called. When an arena is freed, all the memory it allocated is freed, the arena releases internal references to registered PyObject*, and none of its pointers are valid. XXX (tim) What does "none of its pointers are valid" mean? Does it XXX mean that pointers previously obtained via PyArena_Malloc() are XXX no longer valid? (That's clearly true, but not sure that's what XXX the text is trying to say.) PyArena_New() returns an arena pointer. On error, it returns a negative number and sets an exception. XXX (tim): Not true. On error, PyArena_New() actually returns NULL, XXX and looks like it may or may not set an exception (e.g., if the XXX internal PyList_New(0) returns NULL, PyArena_New() passes that on XXX and an exception is set; OTOH, if the internal XXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but XXX an exception is not set in that case). */ PyAPI_FUNC(PyArena *) PyArena_New(void); PyAPI_FUNC(void) PyArena_Free(PyArena *); /* Mostly like malloc(), return the address of a block of memory spanning * `size` bytes, or return NULL (without setting an exception) if enough * new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with * size=0 does not guarantee to return a unique pointer (the pointer * returned may equal one or more other pointers obtained from * PyArena_Malloc()). * Note that pointers obtained via PyArena_Malloc() must never be passed to * the system free() or realloc(), or to any of Python's similar memory- * management functions. PyArena_Malloc()-obtained pointers remain valid * until PyArena_Free(ar) is called, at which point all pointers obtained * from the arena `ar` become invalid simultaneously. */ PyAPI_FUNC(void *) PyArena_Malloc(PyArena *, size_t size); /* This routine isn't a proper arena allocation routine. It takes * a PyObject* and records it so that it can be DECREFed when the * arena is freed. */ PyAPI_FUNC(int) PyArena_AddPyObject(PyArena *, PyObject *); #ifdef __cplusplus } #endif #endif /* !Py_PYARENA_H */ #endif /* Py_LIMITED_API */