From: Christophe Rhodes <csr21@cam.ac.uk>
Date: Tue, 30 Mar 2004 20:21:11 +0000 (+0000)
Subject: 0.8.9.12:
X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=1e0911cab5d91a2253141bcdb473035b1e591473;p=sbcl.git

0.8.9.12:
	Add basic tests regarding DYNAMIC-EXTENT
	... mostly ensure that nothing is broken;
	... in future, we'll want to verify that things are in fact being
		stack-allocated where applicable.
---

diff --git a/tests/dynamic-extent.impure.lisp b/tests/dynamic-extent.impure.lisp
new file mode 100644
index 0000000..339759d
--- /dev/null
+++ b/tests/dynamic-extent.impure.lisp
@@ -0,0 +1,39 @@
+;;;; 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))
+
+(sb-ext:quit :unix-status 104)
\ No newline at end of file
diff --git a/version.lisp-expr b/version.lisp-expr
index 2cbb4c4..4ee3c85 100644
--- a/version.lisp-expr
+++ b/version.lisp-expr
@@ -17,4 +17,4 @@
 ;;; 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"