From: Christophe R. <cr...@pr...> - 2002-11-19 00:42:32
|
Update of /cvsroot/sbcl/sbcl/src/code In directory sc8-pr-cvs1:/tmp/cvs-serv9714/src/code Modified Files: loop.lisp package.lisp Log Message: 0.7.9.55: Fix some more LOOP compliance issues ... signal a package error if the package doesn't exist ... the loop block should surround variable initialization forms Index: loop.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/loop.lisp,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- loop.lisp 16 Nov 2002 10:26:14 -0000 1.22 +++ loop.lisp 19 Nov 2002 00:42:29 -0000 1.23 @@ -800,9 +800,6 @@ ,(nreverse *loop-after-body*) ,(nreconc *loop-epilogue* (nreverse *loop-after-epilogue*))))) - (do () (nil) - (setq answer `(block ,(pop *loop-names*) ,answer)) - (unless *loop-names* (return nil))) (dolist (entry *loop-bind-stack*) (let ((vars (first entry)) (dcls (second entry)) @@ -818,6 +815,9 @@ ,vars ,@(loop-build-destructuring-bindings crocks forms))))))) + (do () (nil) + (setq answer `(block ,(pop *loop-names*) ,answer)) + (unless *loop-names* (return nil))) answer))) (defun loop-iteration-driver () Index: package.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/package.lisp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- package.lisp 14 Oct 2002 06:59:20 -0000 1.9 +++ package.lisp 19 Nov 2002 00:42:29 -0000 1.10 @@ -231,7 +231,13 @@ (,packages `,(mapcar (lambda (package) (if (packagep package) package - (find-package package))) + ;; Maybe FIND-PACKAGE-OR-DIE? + (or (find-package package) + (error 'simple-package-error + ;; could be a character + :name (string package) + :format-control "~@<~S does not name a package ~:>" + :format-arguments (list package))))) (if (consp ,these-packages) ,these-packages (list ,these-packages)))) @@ -244,6 +250,7 @@ `(setf ,package-use-list (package-%use-list (car ,packages))) `(declare (ignore ,package-use-list))) (macrolet ((,init-macro (next-kind) + (declare (optimize (inhibit-warnings 3))) (let ((symbols (gensym))) `(progn (setf ,',kind ,next-kind) @@ -295,6 +302,7 @@ (flet ((,real-symbol-p (number) (> number 1))) (macrolet ((,mname () + (declare (optimize (inhibit-warnings 3))) `(block ,',BLOCK (loop (case ,',kind |