--- /dev/null
+;;;; tests that dynamic-extent functionality works.
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; While most of SBCL is derived from the CMU CL system, the test
+;;;; files (like this one) were written from scratch after the fork
+;;;; from CMU CL.
+;;;;
+;;;; This software is in the public domain and is provided with
+;;;; absolutely no warranty. See the COPYING and CREDITS files for
+;;;; more information.
+
+;;; &REST lists
+(defmacro defun-with-dx (name arglist &body body)
+ `(locally
+ (declare (optimize sb-c::stack-allocate-dynamic-extent))
+ (defun ,name ,arglist
+ ,@body)))
+
+(defun-with-dx dxlength (&rest rest)
+ (declare (dynamic-extent rest))
+ (length rest))
+
+(assert (= (dxlength 1 2 3) 3))
+(assert (= (dxlength t t t t t t) 6))
+(assert (= (dxlength) 0))
+
+(defun callee (list)
+ (destructuring-bind (a b c d e f &rest g) list
+ (+ a b c d e f (length g))))
+
+(defun-with-dx dxcaller (&rest rest)
+ (declare (dynamic-extent rest))
+ (callee rest))
+
+(assert (= (dxcaller 1 2 3 4 5 6 7) 22))
+\f
+(sb-ext:quit :unix-status 104)
\ No newline at end of file
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.9.11"
+"0.8.9.12"