X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fload.lisp;h=4f30cd7601cd04379c84a4466255caf7a284aab5;hb=0d669e68a1ffbea42af6216f2ae8c7d7ca12ffb6;hp=caa2706358a9a84ef159e6e0f5fdaf6dea3cb525;hpb=1bfc464c657a8f4ad24ef612f76a38d8f6f1bbad;p=sbcl.git diff --git a/src/code/load.lisp b/src/code/load.lisp index caa2706..4f30cd7 100644 --- a/src/code/load.lisp +++ b/src/code/load.lisp @@ -30,10 +30,9 @@ (write-string semicolons)) (write-char #\space))) -;;; If VERBOSE, output (to *STANDARD-OUTPUT*) a message about how we're -;;; loading from STREAM-WE-ARE-LOADING-FROM. -;;; FIXME: non-mnemonic name -(defun do-load-verbose (stream-we-are-loading-from verbose) +;;; If VERBOSE, output (to *STANDARD-OUTPUT*) a message about how +;;; we're loading from STREAM-WE-ARE-LOADING-FROM. +(defun maybe-announce-load (stream-we-are-loading-from verbose) (when verbose (load-fresh-line) (let ((name #-sb-xc-host (file-name stream-we-are-loading-from) @@ -46,8 +45,8 @@ #!-sb-fluid (declaim (inline read-byte)) -;;; Expands into code to read an N-byte unsigned integer using -;;; fast-read-byte. +;;; This expands into code to read an N-byte unsigned integer using +;;; FAST-READ-BYTE. (defmacro fast-read-u-integer (n) (declare (optimize (speed 0))) (do ((res '(fast-read-byte) @@ -56,7 +55,7 @@ (cnt 1 (1+ cnt))) ((>= cnt n) res))) -;;; Like Fast-Read-U-Integer, but the size may be determined at run time. +;;; like FAST-READ-U-INTEGER, but the size may be determined at run time (defmacro fast-read-var-u-integer (n) (let ((n-pos (gensym)) (n-res (gensym)) @@ -297,7 +296,7 @@ (svref *fop-names* byte) byte (1- (file-position stream)) - (svref *fop-functions* byte)))) + (svref *fop-funs* byte)))) ;; Actually execute the fop. (if (eql byte 3) @@ -317,7 +316,7 @@ (setq *fop-stack-pointer* index) (setf (svref *fop-stack* index) (svref *current-fop-table* (read-byte stream)))) - (funcall (the function (svref *fop-functions* byte)))))))))) + (funcall (the function (svref *fop-funs* byte)))))))))) (defun load-as-fasl (stream verbose print) ;; KLUDGE: ANSI says it's good to do something with the :PRINT @@ -327,7 +326,7 @@ (declare (ignore print)) (when (zerop (file-length stream)) (error "attempt to load an empty FASL file:~% ~S" (namestring stream))) - (do-load-verbose stream verbose) + (maybe-announce-load stream verbose) (let* ((*fasl-input-stream* stream) (*current-fop-table* (or (pop *free-fop-tables*) (make-array 1000))) (*current-fop-table-size* (length *current-fop-table*)) @@ -355,7 +354,9 @@ (defun find-foreign-symbol-in-table (name table) (let ((prefixes #!+(or linux freebsd) #("" "ldso_stub__") - #!+openbsd #("" "_"))) + #!+openbsd #("" "_") + #!+sunos #("" "ldso_stub__"))) + (declare (notinline some)) ; to suppress bug 117 bogowarning (some (lambda (prefix) (gethash (concatenate 'string prefix name) table @@ -387,8 +388,8 @@ (let ((n (svref ,vec i))) (push (cons (svref *fop-names* i) n) ,lvar) (incf ,tvar n))) - (setq ,lvar (subseq (sort ,lvar #'(lambda (x y) - (> (cdr x) (cdr y)))) + (setq ,lvar (subseq (sort ,lvar (lambda (x y) + (> (cdr x) (cdr y)))) 0 10))))) (breakdown counts total-count *fop-counts*)