[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- GC missed a reference,
Bill Schottstaedt <=