;; Fixed on x86oids only, but other platforms still start
;; their stack frames at 8 slots, so this is less likely
;; to happen.
- (labels ((iota (n)
- (loop for i below n collect i))
- (test-function (function skip)
- ;; function should just be (subseq x skip)
- (loop for i from skip below (+ skip 16) do
- (let* ((values (iota i))
- (f (apply function values))
- (subseq (subseq values skip)))
- (assert (equal f subseq)))))
- (make-function (n)
- (let ((gensyms (loop for i below n collect (gensym))))
- (compile nil `(lambda (,@gensyms &rest rest)
- (declare (ignore ,@gensyms))
- rest)))))
- (dotimes (i 16)
- (test-function (make-function i) i))))
+ (let ((limit 33))
+ (labels ((iota (n)
+ (loop for i below n collect i))
+ (test-function (function skip)
+ ;; function should just be (subseq x skip)
+ (loop for i from skip below (+ skip limit) do
+ (let* ((values (iota i))
+ (f (apply function values))
+ (subseq (subseq values skip)))
+ (assert (equal f subseq)))))
+ (make-function (n)
+ (let ((gensyms (loop for i below n collect (gensym))))
+ (compile nil `(lambda (,@gensyms &rest rest)
+ (declare (ignore ,@gensyms))
+ rest)))))
+ (dotimes (i limit)
+ (test-function (make-function i) i)))))