X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ffop.lisp;h=9891b4690dfd1f599c2d5077a244aaedfe503743;hb=d51e3da4e408b17398f8219d490ec8c10812dfcf;hp=6b2809d136a56fa1f99664756a0073abe699e922;hpb=f181ad9ffeeadf341b6a16c3591eadf0c1e3fa61;p=sbcl.git diff --git a/src/code/fop.lisp b/src/code/fop.lisp index 6b2809d..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