0.8.16.12:
authorChristophe Rhodes <csr21@cam.ac.uk>
Thu, 28 Oct 2004 17:07:16 +0000 (17:07 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Thu, 28 Oct 2004 17:07:16 +0000 (17:07 +0000)
Deal with oversight of ~~ directive in compile-time checking.
(Bruno Haible cmucl-imp 2004-10-28)

NEWS
src/code/late-format.lisp
tests/compiler.test.sh
version.lisp-expr

diff --git a/NEWS b/NEWS
index b12970f..e880cfa 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -23,6 +23,8 @@ changes in sbcl-0.8.17 relative to sbcl-0.8.16:
     name conflict situations in CLHS 11.1.1.2.5, and provide a restart
     permitting resolution in favour of any of the conflicting symbols.
     (reported by Bruno Haible for CMUCL)
+  * FORMAT compile-time argument count checking has been enhanced.
+    (report from Bruno Haible for CMUCL)
   * fixed some bugs revealed by Paul Dietz' test suite:
     ** RENAME-PACKAGE allows all package designators as new package
        names.
index 6c42925..4f058c0 100644 (file)
                        ((char= c #\P)
                         (unless (format-directive-colonp directive)
                           (incf-both)))
-                       ((or (find c "IT%&|_();>") (char= c #\Newline)))
+                       ((or (find c "IT%&|_();>~") (char= c #\Newline)))
                         ;; FIXME: check correspondence of ~( and ~)
                        ((char= c #\<)
                         (walk-complex-directive walk-justification))
index dca23a0..de4512d 100644 (file)
@@ -286,6 +286,15 @@ cat > $tmpfilename <<EOF
 EOF
 expect_failed_compile $tmpfilename
 
+# This should style-warn (but not warn or otherwise fail) as the call
+# to FORMAT has too many arguments, which is bad style but not
+# otherwise fatal.
+cat > $tmpfilename <<EOF
+(defun foo (a b)
+  (format nil "abc~~def" a b))
+EOF
+expect_warned_compile $tmpfilename
+
 rm $tmpfilename
 rm $compiled_tmpfilename
 
index 82c92ec..48a03c1 100644 (file)
@@ -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.16.11"
+"0.8.16.12"