X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Ffast-init.lisp;h=38693682a00ab6fa27e181c96e2741d5e80c3e54;hb=c8af15e61b030c8d4b0e950bc9b7618530044618;hp=9740481bc912d62cc772984c6ad3ffaa62402abc;hpb=099d6dd1f6a5ac2ffec5c14d07a4b905322ef968;p=sbcl.git diff --git a/src/pcl/fast-init.lisp b/src/pcl/fast-init.lisp index 9740481..3869368 100644 --- a/src/pcl/fast-init.lisp +++ b/src/pcl/fast-init.lisp @@ -60,16 +60,18 @@ (sym (make-instance-function-symbol key))) (push key *make-instance-function-keys*) (when sym - ;; MNA: cmucl-commit Sat, 27 Jan 2001 07:07:45 -0800 (PST) - ;; Silence compiler warnings about undefined function - ;; - ;; when compiling a method containing a make-instance call. - (progn ;; Lifted from c::%%defun. - (sb-c::proclaim-as-function-name sym) - (when (eq (sb-int:info :function :where-from sym) :assumed) - (setf (sb-int:info :function :where-from sym) :defined) - (when (sb-int:info :function :assumed-type sym) - (setf (sb-int:info :function :assumed-type sym) nil)))) + ;; (famous last words: + ;; 1. Don't worry, I know what I'm doing. + ;; 2. You and what army? + ;; 3. If you were as smart as you think you are, you + ;; wouldn't be a copy. + ;; This is case #1.:-) Even if SYM hasn't been defined yet, + ;; it must be an implementation function, or we we wouldn't + ;; have expanded into it. So declare SYM as defined, so that + ;; even if it hasn't been defined yet, the user doesn't get + ;; obscure warnings about undefined internal implementation + ;; functions like HAIRY-MAKE-instance-name. + (sb-kernel:become-defined-function-name sym) `(,sym ',class (list ,@initargs))))))) (defmacro expanding-make-instance-top-level (&rest forms &environment env) @@ -176,7 +178,7 @@ 'initialize-info name))) *initialize-info-cached-slots*))) `(progn - (defstruct initialize-info + (defstruct (initialize-info (:copier nil)) key wrapper ,@(mapcar #'(lambda (name) `(,name :unknown)) @@ -693,7 +695,7 @@ (defvar *note-iis-entry-p* nil) (defvar *compiled-initialize-instance-simple-functions* - (make-hash-table :test #'equal)) + (make-hash-table :test 'equal)) (defun initialize-instance-simple-function (use info class form-list) (let* ((pv-cell (get-pv-cell-for-class class))