Steel Bank Common Lisp

Comment 1 for bug 353861

Karol Skocik (karol-skocik) wrote :

I have a test case to reproduce it quite reliably:

;; this is iota from alexandria
(defun iota (n &key (start 0) (step 1))
  (declare (type (integer 0) n) (number start step))
  (loop repeat n
     for i = (+ start (- step step)) then (+ i step)
     collect i))

(defun test-iota (n)
  (flet ((thread-fn ()
           (loop (sleep 0.01)
              (make-array 100 :initial-contents (iota 100)))))
    (loop :repeat n
       :collect (sb-thread:make-thread #'thread-fn)))))

First, run (test-iota 10), then in repl:

(loop :repeat 100 :do (room))

What's interesting is that it does not crash without ":initial-contents (iota 100)" in make-array in thread-fn.

Karol