(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))))
\f
;;;; fops for loading numbers
(declare (inline assoc))
(cond ((cdr (assoc pkg (fasl-output-packages file) :test #'eq)))
(t
- (unless *cold-load-dump*
- (dump-fop 'fop-normal-load file))
- #+sb-xc-host
- (dump-simple-base-string
- (coerce (package-name pkg) 'simple-base-string)
- file)
- #-sb-xc-host
- (#!+sb-unicode dump-simple-character-string
- #!-sb-unicode dump-simple-base-string
- (coerce (package-name pkg) '(simple-array character (*)))
- file)
- (dump-fop 'fop-package file)
- (unless *cold-load-dump*
- (dump-fop 'fop-maybe-cold-load file))
- (let ((entry (dump-pop file)))
+ (let ((s (package-name pkg)))
+ (dump-fop* (length s) fop-small-named-package-save fop-named-package-save file)
+ #+sb-xc-host
+ (dump-base-chars-of-string (coerce s 'simple-base-string) file)
+ #-sb-xc-host
+ (#!+sb-unicode dump-characters-of-string
+ #!-sb-unicode dump-base-chars-of-string
+ (coerce s '(simple-array character (*))) file))
+ (let ((entry (fasl-output-table-free file)))
+ (incf (fasl-output-table-free file))
(push (cons pkg entry) (fasl-output-packages file))
entry))))
\f
(let ((symbol-des (allocate-symbol name)))
(push-fop-table symbol-des))))
\f
+;;;; cold fops for loading packages
+
+(clone-cold-fop (fop-named-package-save :stackp nil)
+ (fop-small-named-package-save)
+ (let* ((size (clone-arg))
+ (name (make-string size)))
+ (read-string-as-bytes *fasl-input-stream* name)
+ (push-fop-table (find-package name))))
+\f
;;;; cold fops for loading lists
;;; Make a list of the top LENGTH things on the fop stack. The last
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.37.26"
+"1.0.37.27"