X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fpackage.lisp;h=bc7ca27500747e69e1d6f9e9299b2e6d4fb2342a;hb=696e38f7210c587ba0b54795f4795f58e62fed2d;hp=c43c5e4006f43da5fbca9d95bf13e6e05c0bba1e;hpb=0ea76b6b3c9e5c5608ca4c03f429834222717301;p=sbcl.git diff --git a/src/code/package.lisp b/src/code/package.lisp index c43c5e4..bc7ca27 100644 --- a/src/code/package.lisp +++ b/src/code/package.lisp @@ -73,7 +73,7 @@ #!+sb-doc "the standard structure for the description of a package" ;; the name of the package, or NIL for a deleted package - (%name nil :type (or simple-string null)) + (%name nil :type (or simple-base-string null)) ;; nickname strings (%nicknames () :type list) ;; packages used by this package @@ -99,7 +99,7 @@ ;; shadowing symbols (%shadowing-symbols () :type list) ;; documentation string for this package - (doc-string nil :type (or simple-string null))) + (doc-string nil :type (or simple-base-string null))) ;;;; iteration macros @@ -111,7 +111,8 @@ "DO-SYMBOLS (VAR [PACKAGE [RESULT-FORM]]) {DECLARATION}* {TAG | FORM}* Executes the FORMs at least once for each symbol accessible in the given PACKAGE with VAR bound to the current symbol." - (multiple-value-bind (body decls) (parse-body body-decls nil) + (multiple-value-bind (body decls) + (parse-body body-decls :doc-string-allowed nil) (let ((flet-name (gensym "DO-SYMBOLS-"))) `(block nil (flet ((,flet-name (,var) @@ -146,7 +147,8 @@ "DO-EXTERNAL-SYMBOLS (VAR [PACKAGE [RESULT-FORM]]) {DECL}* {TAG | FORM}* Executes the FORMs once for each external symbol in the given PACKAGE with VAR bound to the current symbol." - (multiple-value-bind (body decls) (parse-body body-decls nil) + (multiple-value-bind (body decls) + (parse-body body-decls :doc-string-allowed nil) (let ((flet-name (gensym "DO-SYMBOLS-"))) `(block nil (flet ((,flet-name (,var) @@ -171,7 +173,8 @@ "DO-ALL-SYMBOLS (VAR [RESULT-FORM]) {DECLARATION}* {TAG | FORM}* Executes the FORMs once for each symbol in every package with VAR bound to the current symbol." - (multiple-value-bind (body decls) (parse-body body-decls nil) + (multiple-value-bind (body decls) + (parse-body body-decls :doc-string-allowed nil) (let ((flet-name (gensym "DO-SYMBOLS-"))) `(block nil (flet ((,flet-name (,var) @@ -301,7 +304,7 @@ `((:internal (setf ,',counter (position-if #',',real-symbol-p - ,',hash-vector + (the hash-vector ,',hash-vector) :start (if ,',counter (1+ ,',counter) 0))) @@ -314,7 +317,7 @@ `((:external (setf ,',counter (position-if #',',real-symbol-p - ,',hash-vector + (the hash-vector ,',hash-vector) :start (if ,',counter (1+ ,',counter) 0))) @@ -328,7 +331,9 @@ (flet ((,',inherited-symbol-p (number) (when (,',real-symbol-p number) (let* ((p (position - number ,',hash-vector + number + (the hash-vector + ,',hash-vector) :start (if ,',counter (1+ ,',counter) 0))) @@ -339,11 +344,13 @@ (car ,',packages))) :inherited))))) (setf ,',counter - (position-if #',',inherited-symbol-p - ,',hash-vector - :start (if ,',counter - (1+ ,',counter) - 0)))) + (when ,',hash-vector + (position-if #',',inherited-symbol-p + (the hash-vector + ,',hash-vector) + :start (if ,',counter + (1+ ,',counter) + 0))))) (cond (,',counter (return-from ,',BLOCK