From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.user Subject: Re: smob mark functions in 2.0 Date: Wed, 30 Nov 2011 10:29:26 -0500 Message-ID: <87fwh5d3xl.fsf@netris.org> References: <87aa7mmt76.fsf@pobox.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1322667085 31793 80.91.229.12 (30 Nov 2011 15:31:25 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 30 Nov 2011 15:31:25 +0000 (UTC) Cc: guile-user To: Andy Wingo Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Wed Nov 30 16:31:13 2011 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RVm7p-0008Tt-1U for guile-user@m.gmane.org; Wed, 30 Nov 2011 16:31:09 +0100 Original-Received: from localhost ([::1]:35595 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RVm7o-0005Gv-4m for guile-user@m.gmane.org; Wed, 30 Nov 2011 10:31:08 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:52896) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RVm7e-0005GV-Q4 for guile-user@gnu.org; Wed, 30 Nov 2011 10:31:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RVm7d-0005D2-MB for guile-user@gnu.org; Wed, 30 Nov 2011 10:30:58 -0500 Original-Received: from world.peace.net ([96.39.62.75]:39749) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RVm7d-0005CN-Ht for guile-user@gnu.org; Wed, 30 Nov 2011 10:30:57 -0500 Original-Received: from 209-6-91-212.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.91.212] helo=yeeloong) by world.peace.net with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.69) (envelope-from ) id 1RVm7H-0000r8-3S; Wed, 30 Nov 2011 10:30:35 -0500 In-Reply-To: <87aa7mmt76.fsf@pobox.com> (Andy Wingo's message of "Wed, 23 Nov 2011 22:20:45 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.91 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 96.39.62.75 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:9013 Archived-At: Andy Wingo writes: > Specifically, there is a warning in gc/gc_mark.h: > > /* WARNING: Such a mark procedure may be invoked on an unused object */ > /* residing on a free list. Such objects are cleared, except for a */ > /* free list link field in the first word. Thus mark procedures may */ > /* not count on the presence of a type descriptor, and must handle this */ > /* case correctly somehow. */ > > So, your mark function might see freed objects. How can this happen? If you are marking an object, then presumably it is still reachable, and therefore the objects it references are also still reachable. If any of those reachable objects has been freed, isn't that already a bug of a different kind? What am I missing? Thanks, Mark