X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ffop.lisp;h=9891b4690dfd1f599c2d5077a244aaedfe503743;hb=29dd8b299b1b12eed29e4a67aa378db009e93622;hp=d9acdd5f6349798894791c04a18e32d18c901751;hpb=a160917364f85b38dc0826a5e3dcef87e3c4c62c;p=sbcl.git diff --git a/src/code/fop.lisp b/src/code/fop.lisp index d9acdd5..9891b46 100644 --- a/src/code/fop.lisp +++ b/src/code/fop.lisp @@ -173,11 +173,9 @@ (/show0 "THROWing FASL-GROUP-END") (throw 'fasl-group-end t)) -;;; In the normal loader, we just ignore these. GENESIS overwrites -;;; FOP-MAYBE-COLD-LOAD with something that knows whether to revert to -;;; cold-loading or not. -(define-fop (fop-normal-load 81 :stackp nil)) -(define-fop (fop-maybe-cold-load 82 :stackp nil)) +;;; We used to have FOP-NORMAL-LOAD as 81 and FOP-MAYBE-COLD-LOAD as +;;; 82 until GENESIS learned how to work with host symbols and +;;; packages directly instead of piggybacking on the host code. (define-fop (fop-verify-table-size 62 :stackp nil) (let ((expected-index (read-word-arg))) @@ -270,6 +268,18 @@ (define-fop (fop-package 14) (find-undeleted-package-or-lose (pop-stack))) + +(define-cloned-fops (fop-named-package-save 156 :stackp nil) + (fop-small-named-package-save 157) + (let* ((arg (clone-arg)) + (package-name (make-string arg))) + #+sb-xc-host + (read-string-as-bytes *fasl-input-stream* package-name) + #-sb-xc-host + (#!-sb-unicode read-string-as-bytes + #!+sb-unicode read-string-as-unsigned-byte-32 + *fasl-input-stream* package-name) + (push-fop-table (find-undeleted-package-or-lose package-name)))) ;;;; fops for loading numbers @@ -417,7 +427,8 @@ (dimensions () (cons (pop-stack) dimensions))) ((zerop i) dimensions) (declare (type index i))) - nil) + nil + t) res)) (define-fop (fop-single-float-vector 84) @@ -661,7 +672,7 @@ a bug.~@:>") #+sb-xc-host ; since xc host doesn't know how to compile %PRIMITIVE (error "FOP-FUN-ENTRY can't be defined without %PRIMITIVE.") #-sb-xc-host - (let ((xrefs (pop-stack)) + (let ((info (pop-stack)) (type (pop-stack)) (arglist (pop-stack)) (name (pop-stack)) @@ -677,7 +688,7 @@ a bug.~@:>") (setf (%simple-fun-name fun) name) (setf (%simple-fun-arglist fun) arglist) (setf (%simple-fun-type fun) type) - (setf (%simple-fun-xrefs fun) xrefs) + (setf (%simple-fun-info fun) info) ;; FIXME: See the comment about *LOAD-PRINT* in FOP-EVAL. #+nil (when *load-print* (load-fresh-line)