0.6.11.33:
[sbcl.git] / tests / compiler-1.impure.lisp
index ddb93ae..7ce2b21 100644 (file)
@@ -1,3 +1,17 @@
+;;;; miscellaneous compiler tests with side-effects (e.g. DEFUN
+;;;; changing FDEFINITIONs and globaldb stuff)
+
+;;;; 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.
+
 (cl:in-package :cl-user)
 
 (declaim (optimize (debug 3) (speed 2) (space 1)))
     (+ i f)))
 (assert (= (exercise-valuesify 1.25) 2.25))
 
-;;; A bug inherited from CMU CL screwed up special variable bindings
-;;; inside closures. This was fixed in sbcl-0.6.8.10 by applying the
-;;; patches Douglas Crosher posted to cmucl-imp@cons.org 2000-03-10
-;;; (split across two different messages).
-;;; FIXME: I'd like to find a test case for this..
+
+;;; Don Geddis reported this test case 25 December 1999 on a CMU CL
+;;; mailing list: dumping circular lists caused an infinite loop.
+;;; Douglas Crosher reported a patch 27 Dec 1999. The patch was tested
+;;; on SBCL by Martin Atzmueller 2 Nov 2000, and merged in
+;;; sbcl-0.6.8.11.
+(defun q1 () (dolist (x '#1=("A" "B" . #1#)) x))
+(defun q2 () (dolist (x '#1=("C" "D" . #1#)) x))
+(defun q3 () (dolist (x '#1=("E" "F" . #1#)) x))
+(defun q4 () (dolist (x '#1=("C" "D" . #1#)) x))
+(defun never5 ())
+(defun useful (keys)
+  (declare (type list keys))
+  (loop
+      for c in '#1=("Red" "Blue" . #1#)
+      for key in keys ))
 
 (sb-ext:quit :unix-status 104) ; success