sbcl.sbcl/tests/mv-return.impure.lisp
Stas Boukarev 39303703db
Some checks are pending
CL-host / ecl (push) Waiting to run
CL-host / clisp (push) Waiting to run
CL-host / ccl (push) Waiting to run
CL-host / cmucl (push) Waiting to run
CL-host / sbcl (push) Waiting to run
CL-host / compare-xc-host-fasls (ccl, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (clisp, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (cmucl, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (self, false) (push) Blocked by required conditions
Linux arm / build (push) Waiting to run
Linux arm64 / build () (push) Waiting to run
Linux qemu / build (ppc64le) (push) Waiting to run
Linux qemu / build (riscv64) (push) Waiting to run
Linux / build (x86, --with-sb-thread, ) (push) Waiting to run
Linux / build (x86, --without-sb-thread, ) (push) Waiting to run
Linux / build (x86, --without-sb-unicode, ) (push) Waiting to run
Linux / build (x86-64, --with-mark-region-gc --with-nonstop-foreign-call) (push) Waiting to run
Linux / build (x86-64, --with-sb-fasteval --without-sb-eval --with-nonstop-foreign-call, fasteval) (push) Waiting to run
Linux / build (x86-64, --with-sb-thread --with-nonstop-foreign-call --with-tls-based-mv-return, sse4) (push) Waiting to run
Linux / build (x86-64, --with-sb-thread, ) (push) Waiting to run
Linux / build (x86-64, --without-sb-thread, ) (push) Waiting to run
Linux / build (x86-64, --without-sb-unicode, ) (push) Waiting to run
Mac / build (arm64, --with-mark-region-gc --with-nonstop-foreign-call) (push) Waiting to run
Mac / build (x86-64, --with-mark-region-gc --with-nonstop-foreign-call) (push) Waiting to run
Mac / build (x86-64, --with-sb-thread --with-nonstop-foreign-call) (push) Waiting to run
Windows arm64 / build (arm64, clang-aarch64, clangarm64) (push) Waiting to run
Windows / build (x86-64, ucrt-x86_64, ucrt64) (push) Waiting to run
Mac / build (arm64, --with-sb-thread --with-nonstop-foreign-call) (push) Waiting to run
with-interrupt-bindings: mv-count is a fixnum
2026-09-01 00:53:12 +03:00

25 lines
915 B
Common Lisp

;; Semantically a "limit" is the top end of the thing you're allowed to have,
;; not an exclusive number. (think Speed limit 55)
;; So thanks Lisp for screwing up the English language like this.
(defconstant mvl (min 70 (1- multiple-values-limit))) ; don't use all of heap
(defun ret ()
(values . #.(loop for i below mvl collect `(list ,i))))
(defun ret2 ()
(values 1 2 3 4 5 6 7 8 9 10))
(defun j ()
(let ((end (+ (get-internal-real-time)
(* internal-time-units-per-second #-slow 1/2))))
(loop until (>= (get-internal-real-time) end)
do
(ret2)
(assert (not (mismatch (multiple-value-list (ret))
'#.(loop for i below mvl collect (list i))
:test #'equal))))))
(test-util:with-test (:name :async-mv-area-preservation)
(schedule-timer (make-timer #'ret2) 0.1 :repeat-interval 0.005)
(j))