Add internal routine _PyModule_Clear(), which does approximately what
clear_carefully() used to do in import.c. Differences: leave only
__builtins__ alone in the 2nd pass; and don't clear the dictionary (on
the theory that as long as there are references left to the
dictionary, those might be destructors that might expect __builtins__
to be alive when they run; and __builtins__ can't normally be part of
a cycle).
diff --git a/Include/moduleobject.h b/Include/moduleobject.h
index a435b7f..03bc9f7 100644
--- a/Include/moduleobject.h
+++ b/Include/moduleobject.h
@@ -44,6 +44,7 @@
extern PyObject *PyModule_New Py_PROTO((char *));
extern PyObject *PyModule_GetDict Py_PROTO((PyObject *));
extern char *PyModule_GetName Py_PROTO((PyObject *));
+extern void _PyModule_Clear Py_PROTO((PyObject *));
#ifdef __cplusplus
}