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 bugChange 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.
_______________________________________________ Bug-guile mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-guile
