X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fbyte-comp.lisp;h=63e9885a58a9b11c75f456f4a788126486ec0bf8;hb=0dcc957ae6bf24809fda82fd59c134e70058c42a;hp=cc8a99996a51358fb06ece53c71c0bf3fcaff5e4;hpb=4823297c200e5b1fcab240f06ce82c308b8ee7d7;p=sbcl.git diff --git a/src/compiler/byte-comp.lisp b/src/compiler/byte-comp.lisp index cc8a999..63e9885 100644 --- a/src/compiler/byte-comp.lisp +++ b/src/compiler/byte-comp.lisp @@ -12,12 +12,6 @@ (in-package "SB!C") -;;;; the fasl file format that we use -(defconstant byte-fasl-file-version 3) -;;; 1 = before about sbcl-0.6.9.8 -;;; 2 = merged package SB-CONDITIONS into SB-KERNEL around sbcl-0.6.9.8 -;;; 3 = deleted obsolete CONS-UNIQUE-TAG bytecode in sbcl-0.6.11.8 - ;;; ### remaining work: ;;; ;;; - add more inline operations. @@ -149,7 +143,8 @@ (def-system-constant 14 '(%fdefinition-marker% . %negate)) (def-system-constant 15 '(%fdefinition-marker% . %%defun)) (def-system-constant 16 '(%fdefinition-marker% . %%defmacro)) - (def-system-constant 17 '(%fdefinition-marker% . %%defconstant)) + ;; no longer used as of sbcl-0.pre7: + #+nil (def-system-constant 17 '(%fdefinition-marker% . %%defconstant)) (def-system-constant 18 '(%fdefinition-marker% . length)) (def-system-constant 19 '(%fdefinition-marker% . equal)) (def-system-constant 20 '(%fdefinition-marker% . append)) @@ -640,8 +635,8 @@ (ecase (cleanup-kind (nlx-info-cleanup nlx-info)) ((:catch :unwind-protect) (consume :nlx-entry)) - ;; If for a lexical exit, we will see a breakup later, so - ;; don't consume :NLX-ENTRY now. + ;; If for a lexical exit, we will see a breakup + ;; later, so don't consume :NLX-ENTRY now. (:tagbody) (:block (let ((cont (nlx-info-continuation nlx-info))) @@ -790,6 +785,7 @@ ;;; we reach the mess-up node. After then, we can keep the values from ;;; being discarded by placing a marker on the simulated stack. (defun byte-stack-analyze (component) + (declare (notinline find)) ; to avoid bug 117 bogowarnings (let ((head nil)) (let ((*byte-continuation-counter* 0)) (do-blocks (block component) @@ -1071,7 +1067,7 @@ ;;; values to a continuation. If this continuation needs a type check, ;;; and has a single value, then we do a type check. We also ;;; CANONICALIZE-VALUES for the continuation's desired number of -;;; values (w/o the placeholders.) +;;; values (without the placeholders.) ;;; ;;; Somewhat unrelatedly, we also push placeholders for deleted ;;; arguments to local calls. Although we check first, the actual @@ -1215,7 +1211,8 @@ (output-push-fdefinition segment (if (and found - (= (length (combination-args (continuation-dest cont))) + (= (length (basic-combination-args + (continuation-dest cont))) 2)) found name)))) @@ -1865,9 +1862,9 @@ ;; Process all of the lambdas in component, and assign stack frame ;; locations for all the locals. (dolist (lambda (component-lambdas component)) - ;; We don't generate any code for :external lambdas, so we don't need - ;; to allocate stack space. Also, we don't use the ``more'' entry, - ;; so we don't need code for it. + ;; We don't generate any code for :EXTERNAL lambdas, so we don't + ;; need to allocate stack space. Also, we don't use the ``more'' + ;; entry, so we don't need code for it. (cond ((or (eq (lambda-kind lambda) :external) (and (eq (lambda-kind lambda) :optional) @@ -1931,12 +1928,12 @@ ;; stay in the argument area and which need to be moved into locals. (assign-locals component) - ;; Annotate every continuation with information about how we want the - ;; values. + ;; Annotate every continuation with information about how we want + ;; the values. (annotate-ir1 component) - ;; Determine what stack values are dead, and emit cleanup code to pop - ;; them. + ;; Determine what stack values are dead, and emit cleanup code to + ;; pop them. (byte-stack-analyze component) ;; Make sure any newly added blocks have a block-number. @@ -1977,7 +1974,7 @@ (describe-byte-component component xeps segment *compiler-trace-output*)) (etypecase *compile-object* - (fasl-file + (fasl-output (maybe-mumble "FASL") (fasl-dump-byte-component segment code-length constants xeps *compile-object*))