From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Lynn Winebarger Newsgroups: gmane.lisp.guile.devel Subject: Re: Latent bugs? Date: Sat, 28 Dec 2002 13:46:52 -0500 Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Message-ID: <0212281346520B.21210@locke.free-expression.org> References: <0212280430350A.21210@locke.free-expression.org> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-Trace: main.gmane.org 1041101692 6224 80.91.224.249 (28 Dec 2002 18:54:52 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Sat, 28 Dec 2002 18:54:52 +0000 (UTC) Cc: guile-devel@gnu.org Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18SM6l-0001cG-00 for ; Sat, 28 Dec 2002 19:54:51 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18SM7D-00073p-05 for guile-devel@m.gmane.org; Sat, 28 Dec 2002 13:55:19 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18SM6r-0006yQ-00 for guile-devel@gnu.org; Sat, 28 Dec 2002 13:54:57 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18SM6k-0006mn-00 for guile-devel@gnu.org; Sat, 28 Dec 2002 13:54:53 -0500 Original-Received: from plounts.uits.indiana.edu ([129.79.1.73]) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18SM6j-0006kj-00 for guile-devel@gnu.org; Sat, 28 Dec 2002 13:54:49 -0500 Original-Received: from stjoseph.uits.indiana.edu (stjoseph.uits.indiana.edu [129.79.1.78])gBSIseXa007830; Sat, 28 Dec 2002 13:54:45 -0500 (EST) Original-Received: from locke.free-expression.org (dial-123-84.dial.indiana.edu [156.56.123.84])gBSIsaNp014485; Sat, 28 Dec 2002 13:54:37 -0500 (EST) Original-To: Marko Rauhamaa X-Mailer: KMail [version 1.2] In-Reply-To: X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Developers list for Guile, the GNU extensibility library List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.devel:1838 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:1838 Redirected to guile-devel from bug-guile because this list gets read more often. On Saturday 28 December 2002 13:35, Marko Rauhamaa wrote: > Lynn Winebarger : > > > On Saturday 28 December 2002 03:49, Marko Rauhamaa wrote: > > > > > > return scm_list_2(scm_cons(scm_long2num(old_timer.it_interval.tv_sec), > > > scm_long2num(old_timer.it_interval.tv_usec)), > > > scm_cons(scm_long2num(old_timer.it_value.tv_sec), > > > scm_long2num(old_timer.it_value.tv_usec))); > > > > > > If I understand it correctly, this statement contains several > > > allocations, each of which can potentially trigger garbage collection > > > and delete any of the intermediate results. > > > > The code above, though it is not explicit, will store the > > intermediate return values (references) on the stack, where the > > garbage collector will see them (and thus not free the newly created > > object). It's just how the traditional model of a C machine works. > > I took a glance at gc_os_dep.c and I was surprised. It appears the GC > actually sweeps through all data segments, the stack segment and CPU > registers and heuristically locates pointers into the heap. I've used > that technique myself before, but I wouldn't have thought that was an > effective way of implementing a Lisp machine. > > The Guile manual doesn't state that basically all writable memory of a > process participates in GC: > > http://www.gnu.org/software/guile/docs/guile-ref/Memory-Management.html#Memory%20Management Guile's GC got an overhaul earlier this year. I don't know how well the documentation reflects that. Anybody? Lynn _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel