diff options
Diffstat (limited to 'libguile/modules.c')
-rw-r--r-- | libguile/modules.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libguile/modules.c b/libguile/modules.c index fc6ff3b47..ccb68b709 100644 --- a/libguile/modules.c +++ b/libguile/modules.c @@ -242,8 +242,14 @@ scm_lookup_closure_module (SCM proc) { SCM mod; - /* FIXME: The `module' property is no longer set. See - `set-module-eval-closure!' in `boot-9.scm'. */ + /* FIXME: The `module' property is no longer set on eval closures, as it + introduced a circular reference that precludes garbage collection of + modules with the current weak hash table semantics (see + http://lists.gnu.org/archive/html/guile-devel/2009-01/msg00102.html and + http://thread.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2465 + for details). Since it doesn't appear to be used (only in this + function, which has 1 caller), we no longer extend + `set-module-eval-closure!' to set the `module' property. */ abort (); mod = scm_procedure_property (proc, sym_module); |