diff --git a/ansi-tests/concatenate.lsp b/ansi-tests/concatenate.lsp index fd40f3a0c679f52231ac3b783a05659d6741bbb9..2f0284b03e186abe3df8e60f3c9b766d640db83d 100644 --- a/ansi-tests/concatenate.lsp +++ b/ansi-tests/concatenate.lsp @@ -185,10 +185,12 @@ nil) (deftest concatenate.31 + :notes (:nil-vectors-are-strings) (concatenate 'string "abc" (make-array '(0) :element-type nil) "def") "abcdef") (deftest concatenate.32 + :notes (:nil-vectors-are-strings) (concatenate '(array nil (*))) "") diff --git a/ansi-tests/copy-seq.lsp b/ansi-tests/copy-seq.lsp index 4cba413d250bff7807cceb10ffb61c9e612d7af5..888945453209e4288aee02ebe5249e5afe1dee53 100644 --- a/ansi-tests/copy-seq.lsp +++ b/ansi-tests/copy-seq.lsp @@ -155,6 +155,7 @@ t) (deftest copy-seq.19 + :notes (:nil-vectors-are-strings) (copy-seq (make-array '(0) :element-type nil)) "") diff --git a/ansi-tests/equal.lsp b/ansi-tests/equal.lsp index e2ab6d789285df376c8f57be6ed7a61a5725609e..1e0e7595ab968c94bcbe89273a417bea9ed6fecc 100644 --- a/ansi-tests/equal.lsp +++ b/ansi-tests/equal.lsp @@ -62,12 +62,14 @@ nil) (deftest equal.13 + :notes (:nil-vectors-are-strings) (let ((x (make-array '(0) :element-type nil)) (y (make-array '(0) :element-type nil))) (equalt x y)) t) (deftest equal.14 + :notes (:nil-vectors-are-strings) (and (equalt (make-array '(0) :element-type nil) "") (equalt "" (make-array '(0) :element-type nil))) diff --git a/ansi-tests/equalp.lsp b/ansi-tests/equalp.lsp index 81468ca2a42e6bcc7e1457447ef41261d07f8674..9fce34fbcfeb95bca9b2d0af4c4a236f78d13374 100644 --- a/ansi-tests/equalp.lsp +++ b/ansi-tests/equalp.lsp @@ -28,10 +28,12 @@ nil) (deftest equalp.5 + :notes (:allow-nil-arrays) (equalpt (make-array '(0) :element-type nil) #()) t) (deftest equalp.6 + :notes (:allow-nil-arrays) (equalpt (make-array '(0) :element-type nil) "") t) diff --git a/ansi-tests/gclload1.lsp b/ansi-tests/gclload1.lsp index 69c2cd65fe1f78c52a8acaf7ba1246701e58d8b3..5dd955a3699807d6b88117aa98a126e59ad4bcb5 100644 --- a/ansi-tests/gclload1.lsp +++ b/ansi-tests/gclload1.lsp @@ -14,3 +14,5 @@ ;;; (load "ansi-aux.o") (load "cl-symbol-names.lsp") +(load "notes.lsp") + diff --git a/ansi-tests/make-string.lsp b/ansi-tests/make-string.lsp index e049444ce592d29c9a5ce3615828d1088851accf..f76436f7f81612eaee47245747bcc80e1a2d7e53 100644 --- a/ansi-tests/make-string.lsp +++ b/ansi-tests/make-string.lsp @@ -77,6 +77,7 @@ t) (deftest make-string.10 + :notes (:nil-vectors-are-strings) (let ((s (make-string 0 :element-type nil))) (values (notnot (stringp s)) diff --git a/ansi-tests/make-symbol.lsp b/ansi-tests/make-symbol.lsp index 522e198f42f022aa7761c91524bc5348a6f2e384..dd6a645746ecfc23fe69b588f1b0662ced92e0e8 100644 --- a/ansi-tests/make-symbol.lsp +++ b/ansi-tests/make-symbol.lsp @@ -47,6 +47,7 @@ "") (deftest make-symbol.11 + :notes (:nil-vectors-are-strings) (symbol-name (make-symbol (make-array '(0) :element-type nil))) "") diff --git a/ansi-tests/notes.lsp b/ansi-tests/notes.lsp index 376c6a6a56fa60af9a8d7c412d525b4cc7fbad3b..f366343af5648356f76c1624d7dbd52c9fcf148e 100644 --- a/ansi-tests/notes.lsp +++ b/ansi-tests/notes.lsp @@ -8,5 +8,10 @@ (defnote :allow-nil-arrays "Allow specialized arrays of type (array nil).") -(defnote :allow-nonzero-nil-arrays - "Allow specialized arrays of type (array nil <dims>) of nonzero size.") +(defnote :allow-nonzero-nil-vectors + "Allow specialized vectors of type (vector nil) of nonzero size.") + +(defnote :nil-vectors-are-strings + "Assume that (VECTOR NIL) objects are strings.") + + diff --git a/ansi-tests/nstring-capitalize.lsp b/ansi-tests/nstring-capitalize.lsp index 98a454bba212066d263c28b2e3cd7e8ad06f16f4..5a11f73f776e8305cebc2374aa7a65f8f58e7546 100644 --- a/ansi-tests/nstring-capitalize.lsp +++ b/ansi-tests/nstring-capitalize.lsp @@ -65,6 +65,7 @@ "") (deftest nstring-capitalize.12 + :notes (:nil-vectors-are-strings) (nstring-capitalize (make-array '(0) :element-type nil)) "") diff --git a/ansi-tests/nstring-downcase.lsp b/ansi-tests/nstring-downcase.lsp index e3b7ef27afc89dc128fbc9428c4b410e9f760cfa..1f20be256889647791e61e023a4864cdba9e89d1 100644 --- a/ansi-tests/nstring-downcase.lsp +++ b/ansi-tests/nstring-downcase.lsp @@ -68,6 +68,7 @@ ("abcde" "abcdE"))) (deftest nstring-downcase.11 + :notes (:nil-vectors-are-strings) (nstring-downcase (make-array '(0) :element-type nil)) "") diff --git a/ansi-tests/nstring-upcase.lsp b/ansi-tests/nstring-upcase.lsp index e9c80f488bfa7eed277c9135ce0db123ac37aca3..2f2d9cfa6a653ca738948fd5f6f89c4e05b2f4b8 100644 --- a/ansi-tests/nstring-upcase.lsp +++ b/ansi-tests/nstring-upcase.lsp @@ -67,6 +67,7 @@ ("abcde" "abcdE"))) (deftest nstring-upcase.11 + :notes (:nil-vectors-are-strings) (nstring-upcase (make-array '(0) :element-type nil)) "") diff --git a/ansi-tests/packages-04.lsp b/ansi-tests/packages-04.lsp index 826c4714b4831592d6decfc053551a23e7a755cd..5f5e6b520f50a598151d1eb3a3744a1ebd0f0daa 100644 --- a/ansi-tests/packages-04.lsp +++ b/ansi-tests/packages-04.lsp @@ -49,6 +49,7 @@ t) (deftest intern.3 + :notes (:nil-vectors-are-strings) (let ((cl-user-package (find-package "CL-USER"))) (eqt (intern "" cl-user-package) (intern (make-array 0 :element-type nil) cl-user-package))) diff --git a/ansi-tests/rt.lsp b/ansi-tests/rt.lsp index ed1256d3b99607ccb172774024a4074ae239ecaa..6f69eb1ea0065cda89efccfc903e9225321275cf 100644 --- a/ansi-tests/rt.lsp +++ b/ansi-tests/rt.lsp @@ -357,7 +357,7 @@ (let ((note (make-note :name ',name :contents ',contents :disabled ',disabled))) - (setf (gethash *notes* (note-name note)) note) + (setf (gethash (note-name note) *notes*) note) note))) (defun disable-note (n) diff --git a/ansi-tests/string-capitalize.lsp b/ansi-tests/string-capitalize.lsp index 6c8509e59bf0708a08ce960955539e40ce1cea8e..0b799d58d93c338f3062039754fe86f371be5450 100644 --- a/ansi-tests/string-capitalize.lsp +++ b/ansi-tests/string-capitalize.lsp @@ -85,6 +85,7 @@ "ABCDEF") (deftest string-capitalize.11 + :notes (:nil-vectors-are-strings) (string-capitalize (make-array '(0) :element-type nil)) "") diff --git a/ansi-tests/string-comparisons.lsp b/ansi-tests/string-comparisons.lsp index 66c5e901ae51c72d5e48321ef3a8115bee78d2de..e7df8f1f65e245ec90718bcd4c124370febb6f98 100644 --- a/ansi-tests/string-comparisons.lsp +++ b/ansi-tests/string-comparisons.lsp @@ -506,6 +506,7 @@ ;;; Tests on nil arrays (deftest string=.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (notnot (string= s1 s1)) @@ -518,6 +519,7 @@ t t t t t nil nil) (deftest string/=.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (string/= s1 s1) @@ -530,6 +532,7 @@ nil nil nil nil nil 0 0) (deftest string<.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (string< s1 s1) @@ -542,6 +545,7 @@ nil nil nil nil nil 0 nil) (deftest string<=.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (string<= s1 s1) @@ -554,6 +558,7 @@ 0 0 0 0 0 0 nil) (deftest string>.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (string> s1 s1) @@ -566,6 +571,7 @@ nil nil nil nil nil nil 0) (deftest string>=.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (string>= s1 s1) @@ -578,6 +584,7 @@ 0 0 0 0 0 nil 0) (deftest string-equal.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (notnot (string-equal s1 s1)) @@ -590,6 +597,7 @@ t t t t t nil nil) (deftest string-not-equal.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (string-not-equal s1 s1) @@ -602,6 +610,7 @@ nil nil nil nil nil 0 0) (deftest string-lessp.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (string-lessp s1 s1) @@ -614,6 +623,7 @@ nil nil nil nil nil 0 nil) (deftest string-not-greaterp.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (string-not-greaterp s1 s1) @@ -626,6 +636,7 @@ 0 0 0 0 0 0 nil) (deftest string-greaterp.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (string-greaterp s1 s1) @@ -638,6 +649,7 @@ nil nil nil nil nil nil 0) (deftest string-not-lessp.nil-array.1 + :notes (:nil-vectors-are-strings) (let ((s1 (make-array '(0) :element-type nil))) (values (string-not-lessp s1 s1) @@ -648,15 +660,3 @@ (string-not-lessp s1 "a") (string-not-lessp "a" s1))) 0 0 0 0 0 nil 0) - - - - - - - - - - - - diff --git a/ansi-tests/string-downcase.lsp b/ansi-tests/string-downcase.lsp index 7377c71306b4a3389d137417f4c2e56ce241e5f2..9b3eb410f2f3d569a2bb601ce5c62f8660ded03b 100644 --- a/ansi-tests/string-downcase.lsp +++ b/ansi-tests/string-downcase.lsp @@ -81,10 +81,10 @@ "ABCDE") (deftest string-downcase.11 + :notes (:nil-vectors-are-strings) (string-downcase (make-array '(0) :element-type nil)) "") - (deftest string-downcase.order.1 (let ((i 0) a b c (s (copy-seq "ABCDEF"))) (values diff --git a/ansi-tests/string-left-trim.lsp b/ansi-tests/string-left-trim.lsp index 19fb44e9b7263164be135fcd0a9bffeab9e0fb88..491228dceb1f2bb8cf0b378061db4f64e5358a20 100644 --- a/ansi-tests/string-left-trim.lsp +++ b/ansi-tests/string-left-trim.lsp @@ -142,10 +142,12 @@ "") (deftest string-left-trim.20 + :notes (:nil-vectors-are-strings) (string-left-trim "abcd" (make-array '(0) :element-type nil)) "") (deftest string-left-trim.21 + :notes (:nil-vectors-are-strings) (string-left-trim (make-array '(0) :element-type nil) "abcd") "abcd") diff --git a/ansi-tests/string-right-trim.lsp b/ansi-tests/string-right-trim.lsp index 33b562d17128007d5ba24c1c696b5a9694e26035..59af7b1bcfaa0070d13589f5abf2532e6483f821 100644 --- a/ansi-tests/string-right-trim.lsp +++ b/ansi-tests/string-right-trim.lsp @@ -142,10 +142,12 @@ "") (deftest string-right-trim.20 + :notes (:nil-vectors-are-strings) (string-right-trim "abcd" (make-array '(0) :element-type nil)) "") (deftest string-right-trim.21 + :notes (:nil-vectors-are-strings) (string-right-trim (make-array '(0) :element-type nil) "abcd") "abcd") diff --git a/ansi-tests/string-trim.lsp b/ansi-tests/string-trim.lsp index ec432f51e925ac80e4400d100b927fa0482e10f7..281d6981d194625377fc9e5e57fadfeb7d8054af 100644 --- a/ansi-tests/string-trim.lsp +++ b/ansi-tests/string-trim.lsp @@ -142,10 +142,12 @@ "") (deftest string-trim.20 + :notes (:nil-vectors-are-strings) (string-trim "abcd" (make-array '(0) :element-type nil)) "") (deftest string-trim.21 + :notes (:nil-vectors-are-strings) (string-trim (make-array '(0) :element-type nil) "abcd") "abcd") diff --git a/ansi-tests/string-upcase.lsp b/ansi-tests/string-upcase.lsp index 8777beee34d30f90aec7236c1a835ed318b2001f..e2d9781be3efb5507443e30541f9decff698b77e 100644 --- a/ansi-tests/string-upcase.lsp +++ b/ansi-tests/string-upcase.lsp @@ -81,6 +81,7 @@ "abcde") (deftest string-upcase.11 + :notes (:nil-vectors-are-strings) (string-upcase (make-array '(0) :element-type nil)) "")