X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fdefboot.lisp;h=a5e7ba0eed44a0e01978e45157b89714c811c01a;hb=970dd272dc84f7420252eadb4829cc193f795716;hp=f87d263331a339c4ac0f313e28fb31843bd83ff0;hpb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;p=sbcl.git diff --git a/src/code/defboot.lisp b/src/code/defboot.lisp index f87d263..a5e7ba0 100644 --- a/src/code/defboot.lisp +++ b/src/code/defboot.lisp @@ -19,12 +19,14 @@ ;;;; files for more information. (in-package "SB!IMPL") + ;;;; IN-PACKAGE -(defmacro-mundanely in-package (package-designator) - `(eval-when (:compile-toplevel :load-toplevel :execute) - (setq *package* (find-undeleted-package-or-lose ',package-designator)))) +(defmacro-mundanely in-package (string-designator) + (let ((string (string string-designator))) + `(eval-when (:compile-toplevel :load-toplevel :execute) + (setq *package* (find-undeleted-package-or-lose ,string))))) ;;;; MULTIPLE-VALUE-FOO @@ -200,10 +202,12 @@ #-sb-xc-host ,named-lambda #+sb-xc-host (fdefinition ',name) ,doc - ',inline-lambda)))))) + ',inline-lambda + (sb!c:source-location))))))) #-sb-xc-host -(defun %defun (name def doc inline-lambda) +(defun %defun (name def doc inline-lambda source-location) + (declare (ignore source-location)) (declare (type function def)) (declare (type (or null simple-string) doc)) (aver (legal-fun-name-p name)) ; should've been checked by DEFMACRO DEFUN @@ -220,7 +224,11 @@ #+nil (setf (%fun-name def) name) (when doc - (setf (fdocumentation name 'function) doc)) + (setf (fdocumentation name 'function) doc) + #!+sb-eval + (when (typep def 'sb!eval:interpreted-function) + (setf (sb!eval:interpreted-function-documentation def) + doc))) name) ;;;; DEFVAR and DEFPARAMETER @@ -235,7 +243,9 @@ (eval-when (:compile-toplevel) (%compiler-defvar ',var)) (eval-when (:load-toplevel :execute) - (%defvar ',var (unless (boundp ',var) ,val) ',valp ,doc ',docp)))) + (%defvar ',var (unless (boundp ',var) ,val) + ',valp ,doc ',docp + (sb!c:source-location))))) (defmacro-mundanely defparameter (var val &optional (doc nil docp)) #!+sb-doc @@ -248,27 +258,31 @@ (eval-when (:compile-toplevel) (%compiler-defvar ',var)) (eval-when (:load-toplevel :execute) - (%defparameter ',var ,val ,doc ',docp)))) + (%defparameter ',var ,val ,doc ',docp (sb!c:source-location))))) (defun %compiler-defvar (var) (sb!xc:proclaim `(special ,var))) #-sb-xc-host -(defun %defvar (var val valp doc docp) +(defun %defvar (var val valp doc docp source-location) (%compiler-defvar var) (when valp (unless (boundp var) (set var val))) (when docp (setf (fdocumentation var 'variable) doc)) + (sb!c:with-source-location (source-location) + (setf (info :source-location :variable var) source-location)) var) #-sb-xc-host -(defun %defparameter (var val doc docp) +(defun %defparameter (var val doc docp source-location) (%compiler-defvar var) (set var val) (when docp (setf (fdocumentation var 'variable) doc)) + (sb!c:with-source-location (source-location) + (setf (info :source-location :variable var) source-location)) var) ;;;; iteration constructs