mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +00:00 
			
		
		
		
	 d5cacbb1d9
			
		
	
	
		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.
		
			
				
	
	
		
			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
 |