mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	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.
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			67 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
 |