X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Ffop.lisp;h=758e8b40223faa5f8ee939968e16bc361c75c22e;hb=61dc1d5c0b4988f7e957be876a9abf9f31d51e0a;hp=6a6b94919bae6a71992c057c575a0ea0f070cf66;hpb=1b778d435773891979dab6d442c19f2b7b62b869;p=sbcl.git diff --git a/src/code/fop.lisp b/src/code/fop.lisp index 6a6b949..758e8b4 100644 --- a/src/code/fop.lisp +++ b/src/code/fop.lisp @@ -198,9 +198,10 @@ (read-string-as-bytes *fasl-input-stream* ,n-buffer ,n-size) - (push-fop-table (intern* ,n-buffer - ,n-size - ,n-package))))))))) + (push-fop-table (without-package-locks + (intern* ,n-buffer + ,n-size + ,n-package)))))))))) ;; Note: CMU CL had FOP-SYMBOL-SAVE and FOP-SMALL-SYMBOL-SAVE, but ;; since they made the behavior of the fasloader depend on the @@ -292,14 +293,7 @@ '(make-single-float (fast-read-s-integer 4))) (fast-read-double-float () '(let ((lo (fast-read-u-integer 4))) - (make-double-float (fast-read-s-integer 4) lo))) - #!+long-float - (fast-read-long-float () - '(let ((lo (fast-read-u-integer 4)) - #!+sparc (mid (fast-read-u-integer 4)) - (hi (fast-read-u-integer 4)) ; XXX - (exp (fast-read-s-integer #!+x86 2 #!+sparc 4))) - (make-long-float exp hi #!+sparc mid lo)))) + (make-double-float (fast-read-s-integer 4) lo)))) (macrolet ((define-complex-fop (name fop-code type) (let ((reader (symbolicate "FAST-READ-" type))) `(define-fop (,name ,fop-code) @@ -384,7 +378,7 @@ (res (make-array-header sb!vm:simple-array-widetag rank))) (declare (simple-array vec) (type (unsigned-byte 24) rank)) - (set-array-header res vec length length 0 + (set-array-header res vec length nil 0 (do ((i rank (1- i)) (dimensions () (cons (pop-stack) dimensions))) ((zerop i) dimensions) @@ -404,16 +398,6 @@ (read-n-bytes *fasl-input-stream* result 0 (* length sb!vm:n-word-bytes 2)) result)) -#!+long-float -(define-fop (fop-long-float-vector 88) - (let* ((length (read-arg 4)) - (result (make-array length :element-type 'long-float))) - (read-n-bytes *fasl-input-stream* - result - 0 - (* length sb!vm:n-word-bytes #!+x86 3 #!+sparc 4)) - result)) - (define-fop (fop-complex-single-float-vector 86) (let* ((length (read-arg 4)) (result (make-array length :element-type '(complex single-float)))) @@ -429,14 +413,6 @@ (* length sb!vm:n-word-bytes 2 2)) result)) -#!+long-float -(define-fop (fop-complex-long-float-vector 89) - (let* ((length (read-arg 4)) - (result (make-array length :element-type '(complex long-float)))) - (read-n-bytes *fasl-input-stream* result 0 - (* length sb!vm:n-word-bytes #!+x86 3 #!+sparc 4 2)) - result)) - ;;; CMU CL comment: ;;; *** NOT *** the FOP-INT-VECTOR as currently documented in rtguts. ;;; Size must be a directly supported I-vector element size, with no