From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Marius Vollmer Newsgroups: gmane.lisp.guile.devel Subject: Re: module GC bug Date: Sun, 17 Jul 2005 23:44:24 +0300 Message-ID: <878y05cgd3.fsf@zagadka.de> References: <42A8D188.20007@xs4all.nl> <87fyuq1mrr.fsf@zagadka.de> <42CEF39F.2040608@xs4all.nl> <87irzeh122.fsf@zagadka.de> <42D59370.7080802@xs4all.nl> <877jfqh93q.fsf@zagadka.de> <42DAA874.4020900@xs4all.nl> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1121633676 5452 80.91.229.2 (17 Jul 2005 20:54:36 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 17 Jul 2005 20:54:36 +0000 (UTC) Cc: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun Jul 17 22:54:30 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1DuG9Q-0005Y7-A3 for guile-devel@m.gmane.org; Sun, 17 Jul 2005 22:54:16 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DuGBJ-0007Nd-RM for guile-devel@m.gmane.org; Sun, 17 Jul 2005 16:56:13 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DuG9p-0006dt-Ed for guile-devel@gnu.org; Sun, 17 Jul 2005 16:54:42 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DuG9i-0006Yq-7D for guile-devel@gnu.org; Sun, 17 Jul 2005 16:54:34 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DuG9h-0006XI-M2 for guile-devel@gnu.org; Sun, 17 Jul 2005 16:54:33 -0400 Original-Received: from [213.243.153.35] (helo=smtp2.pp.htv.fi) by monty-python.gnu.org with esmtp (Exim 4.34) id 1DuG8h-0007ns-FJ for guile-devel@gnu.org; Sun, 17 Jul 2005 16:53:31 -0400 Original-Received: from zagadka.ping.de (cs181072157.pp.htv.fi [82.181.72.157]) by smtp2.pp.htv.fi (Postfix) with SMTP id B368D296BA3 for ; Sun, 17 Jul 2005 23:44:24 +0300 (EEST) Original-Received: (qmail 4829 invoked by uid 1000); 17 Jul 2005 20:44:24 -0000 Original-To: Han-Wen Nienhuys In-Reply-To: <42DAA874.4020900@xs4all.nl> (Han-Wen Nienhuys's message of "Sun, 17 Jul 2005 20:50:28 +0200") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:5166 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:5166 Han-Wen Nienhuys writes: > isn't it possible to store the 'module property in a doubly weak hash > table? That would work, but the 'module property would then be a special case. If we can, we should solve the general problem, I'd say. The general problem being that cycles of references where at least one of the references is weak are not broken up. For example: (define w (make-weak-key-alist-vector 1)) (vector-set! w o (let ((k "foo")) (acons k k '()))) will never remove the entry from w. > What you propose sounds very costly, I don't think so. With my changes, we normally do three passes over a weak alist vector, while now we make two. And since it (hopefully) fixes the bug above, I think it is worth this. > and my gut instinct says that I can punch a hole in it as well. Maybe, but hopefully we can stuff those holes. I will commit the change soonish; please try to break it then. -- GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3 331E FAF8 226A D5D4 E405 _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel