From acce826c593a188b231b7b7918c752bda21d0201 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Mon, 3 Feb 2003 16:23:55 +0000 Subject: [PATCH] 0.7.12.18: Make genesis pass package documentation on as well as all the symbol information ... add another element to *COLD-PACKAGE-SYMBOLS*, yuk ... test for documentation of (FIND-PACKAGE SB-EXT), because users will legitimately want to know about it. Slightly more OAOOness for generalized function names ... FUN-NAME-BLOCK-NAME now knows about CLASS-PREDICATE --- NEWS | 4 ++++ src/code/early-extensions.lisp | 3 +-- src/code/target-package.lisp | 4 +++- src/compiler/generic/genesis.lisp | 5 ++++- tests/interface.pure.lisp | 3 +++ version.lisp-expr | 2 +- 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 1f67cf1..498a62e 100644 --- a/NEWS +++ b/NEWS @@ -1529,12 +1529,16 @@ changes in sbcl-0.7.13 relative to sbcl-0.7.12: (SAFETY 3) code, errors will be signalled in almost all cases if invalid sequence bounding indices are passed to functions defined by ANSI to operate on sequences. + * fixed a bug in the build procedure: documentation of SBCL-specific + packages is now preserved and available in the final Lisp image. * fixed some bugs revealed by Paul Dietz' test suite: ** ARRAY-IN-BOUNDS-P now allows arbitrary integers as arguments, not just nonnegative fixnums; ** the logical bit-array operators such as BIT-AND now accept an explicit NIL for their "opt-arg" argument (to indicate a freshly-consed result bit-array); + ** ELT now signals an error on an invalid sequence index in safe + code; planned incompatible changes in 0.7.x: * (not done yet, but planned:) When the profiling interface settles diff --git a/src/code/early-extensions.lisp b/src/code/early-extensions.lisp index c342e86..5163fe1 100644 --- a/src/code/early-extensions.lisp +++ b/src/code/early-extensions.lisp @@ -633,8 +633,7 @@ (cond ((symbolp fun-name) fun-name) ((and (consp fun-name) - (= (length fun-name) 2) - (eq (first fun-name) 'setf)) + (legal-fun-name-p fun-name)) (second fun-name)) (t (error "not legal as a function name: ~S" fun-name)))) diff --git a/src/code/target-package.lisp b/src/code/target-package.lisp index 23e9150..e7a79f2 100644 --- a/src/code/target-package.lisp +++ b/src/code/target-package.lisp @@ -938,7 +938,9 @@ (add-symbol external symbol)) ;; Put shadowing symbols in the shadowing symbols list. - (setf (package-%shadowing-symbols pkg) (sixth spec)))) + (setf (package-%shadowing-symbols pkg) (sixth spec)) + ;; Set the package documentation + (setf (package-doc-string pkg) (seventh spec)))) ;; FIXME: These assignments are also done at toplevel in ;; boot-extensions.lisp. They should probably only be done once. diff --git a/src/compiler/generic/genesis.lisp b/src/compiler/generic/genesis.lisp index 10641b3..cdd0941 100644 --- a/src/compiler/generic/genesis.lisp +++ b/src/compiler/generic/genesis.lisp @@ -1028,7 +1028,8 @@ ;;; ;;; ;;; -;;; ) +;;; +;;; ) ;;; ;;; KLUDGE: It would be nice to implement the sublists as instances of ;;; a DEFSTRUCT (:TYPE LIST). (They'd still be lists, but at least we'd be @@ -1271,6 +1272,7 @@ (let* ((cold-package (car cold-package-symbols-entry)) (symbols (cdr cold-package-symbols-entry)) (shadows (package-shadowing-symbols cold-package)) + (documentation (string-to-core (documentation cold-package t))) (internal *nil-descriptor*) (external *nil-descriptor*) (imported-internal *nil-descriptor*) @@ -1317,6 +1319,7 @@ (cold-push handle imported-external) (cold-push handle external))))))) (let ((r *nil-descriptor*)) + (cold-push documentation r) (cold-push shadowing r) (cold-push imported-external r) (cold-push imported-internal r) diff --git a/tests/interface.pure.lisp b/tests/interface.pure.lisp index 6208384..5d37468 100644 --- a/tests/interface.pure.lisp +++ b/tests/interface.pure.lisp @@ -41,3 +41,6 @@ (subtypep 'fixnum 'integer nil) (upgraded-array-element-type '(mod 5) nil) (upgraded-complex-part-type '(single-float 0.0 1.0) nil) + +;;; We should have documentation for our extension package: +(assert (documentation (find-package "SB-EXT") t)) diff --git a/version.lisp-expr b/version.lisp-expr index f28a660..83a50fd 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.12.17" +"0.7.12.18" -- 1.7.10.4