mirror of
https://github.com/python/cpython.git
synced 2024-12-29 19:55:17 +08:00
d5cacbb1d9
Known limitations of the current implementation: - documentation changes are incomplete - there's a reference leak I haven't tracked down yet The leak is most visible by running: ./python -m test -R3:3 test_importlib However, you can also see it by running: ./python -X showrefcount Importing the array or _testmultiphase modules, and then deleting them from both sys.modules and the local namespace shows significant increases in the total number of active references each cycle. By contrast, with _testcapi (which continues to use single-phase initialisation) the global refcounts stabilise after a couple of cycles.
68 lines
1.6 KiB
C
68 lines
1.6 KiB
C
/* -*- C -*- ***********************************************
|
|
Copyright (c) 2000, BeOpen.com.
|
|
Copyright (c) 1995-2000, Corporation for National Research Initiatives.
|
|
Copyright (c) 1990-1995, Stichting Mathematisch Centrum.
|
|
All rights reserved.
|
|
|
|
See the file "Misc/COPYRIGHT" for information on usage and
|
|
redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|
******************************************************************/
|
|
|
|
/* Module configuration */
|
|
|
|
/* !!! !!! !!! This file is edited by the makesetup script !!! !!! !!! */
|
|
|
|
/* This file contains the table of built-in modules.
|
|
See create_builtin() in import.c. */
|
|
|
|
#include "Python.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
/* -- ADDMODULE MARKER 1 -- */
|
|
|
|
extern PyObject* PyMarshal_Init(void);
|
|
extern PyObject* PyInit_imp(void);
|
|
extern PyObject* PyInit_gc(void);
|
|
extern PyObject* PyInit__ast(void);
|
|
extern PyObject* _PyWarnings_Init(void);
|
|
extern PyObject* PyInit__string(void);
|
|
|
|
struct _inittab _PyImport_Inittab[] = {
|
|
|
|
/* -- ADDMODULE MARKER 2 -- */
|
|
|
|
/* This module lives in marshal.c */
|
|
{"marshal", PyMarshal_Init},
|
|
|
|
/* This lives in import.c */
|
|
{"_imp", PyInit_imp},
|
|
|
|
/* This lives in Python/Python-ast.c */
|
|
{"_ast", PyInit__ast},
|
|
|
|
/* These entries are here for sys.builtin_module_names */
|
|
{"builtins", NULL},
|
|
{"sys", NULL},
|
|
|
|
/* This lives in gcmodule.c */
|
|
{"gc", PyInit_gc},
|
|
|
|
/* This lives in _warnings.c */
|
|
{"_warnings", _PyWarnings_Init},
|
|
|
|
/* This lives in Objects/unicodeobject.c */
|
|
{"_string", PyInit__string},
|
|
|
|
/* Sentinel */
|
|
{0, 0}
|
|
};
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|