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

[no subject]

Final message (probably) on bug in GC in LISP, pointers from compiled code
to FIXNUMs not traced during GC causing FIXNUM objects to be reaped while
code still points to them.
Contains (SETQ #SAFE (LIST 111111111111 7007007007 777000777 777777 -7777
			-1 -2 -3 -6 -9. -18.))
which protects all these constants }from reaping and fixes the bug.
The following JCL wins:
(REC-BD-VAL #BD T 4 1)
runs for 10 or 20 seconds and returns the correct value of 0
but if you do (SETQ #SAFE NIL) just before calling REC-BD-VAL, i.e.
unproect those constants from GC, within a couple seconds after
starting REC-BD-VAL it detects that the result of COUNT-BITS isn't
in range 0 to 36. thus showing at least one of the masks or shift-amounts
has been reaped and replaced by some new random FIXNUM object.
(Or at least that's what all the evidence points to.)