Gabor Melis <[EMAIL PROTECTED]> writes: > Ahoy > > I saw this problem discussed before without a resolution. Here is a short test > program: > > (defvar *users* ()) > > (defun test () > (dotimes (i 1000000) > (when (zerop (mod i 1000)) > (print i)) > (push (make-instance 'user) > *users*))) > [crash] > This is with 18e-9 on Debian testing/x86. SBCL behaves similarly.
Um, isn't this simply because the GC is a (mostly-)copying collector? That is, if you have a 512Mb heap, you'd better not have more than 256Mb of live data at the time of GC. All of your data is live because it can be reached through *users*. Cheers, Christophe -- http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757 (set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b))) (defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge)
