"Document" the `set-module-eval-closure!' weak hash table glitch.
authorLudovic Courtès <ludo@gnu.org>
Tue, 15 Sep 2009 20:31:45 +0000 (22:31 +0200)
committerLudovic Courtès <ludo@gnu.org>
Tue, 15 Sep 2009 20:31:45 +0000 (22:31 +0200)
* module/ice-9/boot-9.scm (set-module-eval-closure!): Add link to an
  explanation.

* test-suite/tests/gc.test ("gc")["Unused modules are removed"]:
  Increase the `cleanup' loop.

module/ice-9/boot-9.scm
test-suite/tests/gc.test

index e6824b9..b1bc3c9 100644 (file)
       ;; XXX: The following line introduces 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
       ;; `scm_lookup_closure_module ()', which has 1 caller), we just comment
index 063dad6..cf252ce 100644 (file)
@@ -1,5 +1,5 @@
 ;;;; gc.test --- test guile's garbage collection    -*- scheme -*-
-;;;; Copyright (C) 2000, 2001, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
+;;;; Copyright (C) 2000, 2001, 2004, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -68,7 +68,7 @@
             ;; don't leave a reference to one of the modules we created.  It
             ;; proved to be useful on SPARC:
             ;; http://lists.gnu.org/archive/html/guile-devel/2008-02/msg00006.html .
-             (let cleanup ((i 10))
+             (let cleanup ((i 20))
                (and (> i 0)
                     (begin (cleanup (1- i)) i)))