bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GC missed a reference


From: Bill Schottstaedt
Subject: GC missed a reference
Date: Mon, 26 Jan 2004 03:26:33 -0800
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225

Sorry about this less-than-ideal bug report, but maybe this
will make sense to someone.

In the CVS Guile, but not earlier versions (i.e. not 1.6.4 or any before that),
there is a problem with let: if you have a block with successive lets,
and these lets share a local name, you can get "GC missed a
reference":

wrong-type-arg: (- Wrong type argument in position ~A: ~S (1 #<freed cell 
0x40b78e80; GC missed a reference>) #f)

The problem goes away if you rename the local variables so that there
are no shared names.  The bad case is basically:

(let ...
  (let ((var val)
        (var1 val1))
    ...)
  (let ((var val2)
        (var1 val3))
    ...)) ; in this body, you can get the GC missed a ref bug

Change the second "var1" to "var2" and the error goes
away. Unfortunately, I can't seem to find a simple case of this -- my
"regression" test is more than 42000 lines long, and it's not a
completely repeatable problem even without any changes.  It appears
that the 2nd binding needs to be the result of SCM_RETURN_NEWSMOB to
trigger this problem.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]