X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmain.lisp;h=55be15efa06e78604e9b213ff8419652ed679baa;hb=305177dc7a7d11245e42e003ac4070eb1705c699;hp=b5ad7f1dc679308cb878d0dd282edb08ded2ee83;hpb=75f29fee61a19b3607bd8fafa8a31184c998c5b0;p=sbcl.git diff --git a/src/compiler/main.lisp b/src/compiler/main.lisp index b5ad7f1..55be15e 100644 --- a/src/compiler/main.lisp +++ b/src/compiler/main.lisp @@ -945,6 +945,29 @@ (gethash (leaf-info fun) entry-table) (aver found-p) result)) + ;; KLUDGE: This code duplicates some other code in this + ;; file. In the great reorganzation, the flow of program logic + ;; changed from the original CMUCL model, and that path (as of + ;; sbcl-0.7.5 in SUB-COMPILE-FILE) was no longer followed for + ;; CORE-OBJECTS, leading to BUG 156. This place is + ;; transparently not the right one for this code, but I don't + ;; have a clear enough overview of the compiler to know how to + ;; rearrange it all so that this operation fits in nicely, and + ;; it was blocking reimplementation of + ;; (DECLAIM (INLINE FOO)) (MACROLET ((..)) (DEFUN FOO ...)) + ;; + ;; FIXME: This KLUDGE doesn't solve all the problem in an + ;; ideal way, as (1) definitions typed in at the REPL without + ;; an INLINE declaration will give a NULL + ;; FUNCTION-LAMBDA-EXPRESSION (allowable, but not ideal) and + ;; (2) INLINE declarations will yield a + ;; FUNCTION-LAMBDA-EXPRESSION headed by + ;; SB-C:LAMBDA-WITH-LEXENV, even for null LEXENV. + ;; + ;; CSR, 2002-07-02 + (when (core-object-p *compile-object*) + (fix-core-source-info *source-info* *compile-object*)) + (mapc #'clear-ir1-info components-from-dfo) (clear-stuff))))) @@ -1225,7 +1248,11 @@ (node-component (lambda-bind x))) :toplevel))) lambdas - :start start) + ;; this used to read ":start start", but + ;; start can be greater than len, which + ;; is an error according to ANSI - CSR, + ;; 2002-04-25 + :start (min start len)) len))) (do* ((start 0 (1+ loser)) (loser (loser start) (loser start))) @@ -1558,7 +1585,7 @@ ;;; If the constant doesn't show up in *CONSTANTS-BEING-CREATED*, then ;;; we have to create it. We call MAKE-LOAD-FORM and check to see ;;; whether the creation form is the magic value -;;; :JUST-DUMP-IT-NORMALLY. If it is, then we don't do anything. The +;;; :SB-JUST-DUMP-IT-NORMALLY. If it is, then we don't do anything. The ;;; dumper will eventually get its hands on the object and use the ;;; normal structure dumping noise on it. ;;; @@ -1599,7 +1626,7 @@ constant condition))) (case creation-form - (:just-dump-it-normally + (:sb-just-dump-it-normally (fasl-validate-structure constant *compile-object*) t) (:ignore-it