- Apr 08, 2004
-
-
rtoy authored
source-location. This bug triggered by (compile nil (lambda () (defclass foo () ()))) (Bug and fix from Eric Marsden.)
-
- Apr 06, 2004
-
-
rtoy authored
cmucl-imp: The patch below adds a somewhat general mechanism to the get the "current location". So every macro that wants to record the source location, can insert a call to SOURCE-LOCATION in the generated code and safe the result in a appropriate place. SOURCE-LOCATION is a compiler-macro and returns a quoted struct with the source info. The patch adds the definition for SOURCE-LOCATION some modifications for the defclass, defgeneric and defmethod macros. Classes, generic functions and methods have already a "source" slot and the result of SOURCE-LOCATION is just stored into that slot. (The source slot contains currently only the *loadpath*, which is is not very useful, if the fasl file is in a different directory than the source file.)
-
- Mar 24, 2004
-
-
emarsden authored
- component names may be non-pretty-printable
-
- Oct 26, 2003
-
-
gerd authored
unreachable blocks, similar to ir1-optimize, which we don't call. This simplifies things by reducing the differences between "normal" compilation and compiling for interpretation. * src/compiler/ir1util.lisp (block-unreachable-p): New function. (delete-lambda): Mark return blocks for deletion again. * src/compiler/ir1opt.lisp (ir1-optimize): Use block-unreachable-p. Delete unreachable blocks after the loop.
-
- Oct 21, 2003
-
-
gerd authored
the return-block for deletion.
-
- Oct 13, 2003
-
-
gerd authored
(labels ((%f15 () (* (unwind-protect c) (max -5726369 (return-from %f15 3099206))))) c))) => assertion failure in unlink-blocks * src/compiler/ir1util.lisp (delete-lambda): Protect the deletion of the return block against already being marked for deletion. Mark the return block for deletion. From SBCL.
-
- Oct 11, 2003
-
-
gerd authored
=> assertion failure in delete-block * src/compiler/ir1util.lisp (delete-lambda): Mark blocks of lambda-refs for deletion. Protect the unlink of the bind-block against it being marked for deletion. (delete-block) <entry>: Mark blocks of exits for deletion. Delete the entry from lambda-entries.
-
- Oct 09, 2003
-
-
gerd authored
(declare (type (integer -30078003 47403) a)) (unwind-protect (if (ldb-test (byte 6 23) 828450) (logandc1 -1 (min -34 (block b2 a))) a)))) => The assertion (C::CONSTANT-CONTINUATION-P C::CONT) failed, in %unwind-protect/ir2-convert * src/compiler/ir1util.lisp (delete-block): Don't remove block end cleanups unless *converting-for-interpreter*. Reported by Paul Dietz.
-
- Oct 02, 2003
-
-
gerd authored
'(lambda (c) (declare (optimize (speed 3) (debug 1))) (flet ((%f18 () -36)) (flet ((%f13 () (let () (block b8 (return-from b8 c))))) (%f18))))) => error nil is not an integer, in dump-1-variable Found by Paul Dietz. This is caused by a lambda-var being passed to dump-1-variable which hasn't been packed, and so has a null tn-offset. A ref to this lambda-var remains at this point because it is referenced from a different component. The ref is deleted when that component is compiled. The problem is that there shouldn't have been two components to begin with, which we prevent by recording additional DFO dependencies for closed-over variables and entries. Port from SBCL, basically. Does not require a bootstrap file, but a full build is necessary due to the renamed clambda structure slot. * src/compiler/dfo.lisp (dfo-walk-call-graph): Process new dfo dependencies. * src/compiler/node.lisp (clambda): Rename slot `calls' to `dfo-dependencies'. * src/compiler/locall.lisp (convert-call, convert-mv-call): Call note-dfo-dependency. (merge-lets): Change for new clambda slot name. (unconvert-tail-calls): Handle the case of non-clambdas in the dfo dependencies. * src/compiler/ir1util.lisp (continuation-home-lambda) (note-dfo-dependency): New functions. * src/compiler/ir1tran.lisp (ir1-convert-variable) (return-from, go, setq): Call note-dfo-dependency. * src/compiler/xref.lisp (lambda-called-p): New function. (prettiest-caller-name): Use lambda-called-p instead of lambda-calls.
-
- Aug 16, 2003
-
-
gerd authored
* src/compiler/srctran.lisp (check-format-args-1) (check-format-args-2): Extracted from check-format-args. (check-format-args): Take a continuation argument for the control string. (format): Use the new check- functions. (error, warn, compiler-error, compiler-warning) (compiler-note, compiler-mumble): Add format-checking deftransforms. * src/compiler/fndb.lisp (compiler-warning, compiler-note) (compiler-mumble, compiler-error): Add defknowns. * src/compiler/ir1util.lisp (compiler-mumble, compiler-warning) (compiler-note): Return no values. * src/code/parse-time.lisp (deal-with-am-pm): Add a missing arg to error. * src/compiler/saptran.lisp (foreign-symbol-address): * src/compiler/new-assem.lisp (emit-annotation): Likewise.
-
- Aug 06, 2003
-
-
gerd authored
bootstrapping. (defun prn (fn) (print (funcall fn))) (defun foo (x) (flet ((bar () x)) (declare (dynamic-extent #'bar)) (prn #'bar))) => The closure for BAR is allocated from the stack * src/compiler/node.lisp (lexenv): Add slot dynamic-extent. * src/compiler/ir1util.lisp (make-lexenv): Add keyword arg for dynamic-extent. * src/code/defstruct.lisp (%redefine-defstruct) [#+bootstrap-dynamic-extent]: Definition that corresponds to to the clobber-it restart. * src/compiler/ir1tran.lisp (process-dynamic-extent-declaration): Rewritten. * src/compiler/x86/alloc.lisp (make-closure): Add constant arg dynamic-extent, and use it for allocation. * src/compiler/ir2tran.lisp (ir2-convert-closure) [#+x86]: Pass dynamic-extent to the make-closure vop.
-
- Jun 02, 2003
-
-
emarsden authored
- an extra optional argument to COMPILER-NOTIFICATION makes it possible to pass text describing the error/note to *COMPILER-NOTIFICATION-FUNCTION*. - functions for *COMPILER-NOTIFICATION-FUNCTION* have an extra second argument which describes the error/note - modify the eval-server functionality in Hemlock in consequence This backwards-incompatible change makes the *COMPILER-NOTIFICATION-FUNCTION* facility considerably more useful, since the description of the error (which was previously not passed to the notification-function) is very useful when reporting an error. Compile-time effect of DEFCONSTANT: instead of discarding the documentation string, add it to the info database.
-
- Apr 11, 2003
-
-
emarsden authored
lexical environment to take into account generalized function names, and in particular inline declarations for FLET or LABELS functions. New function called FUNCTION-NAME-EQV-P that knows that a name like (FLET INNER OUTER) is equivalent to a name like INNER. * Include any context information in undefined-function warnings. Forms like (defun bogus (x) (declare (ftype (function (t) *) no-ftype)) (flet ((foo (x) (random (1+ x)))) (declare (inline almost-foo)) (foo (+ x 1)))) will now generate warnings of the form Warning: Undefined function almost-foo in an inline or notinline declaration Warning: Undefined function no-ftype in a function type declaration
-
- Mar 24, 2003
-
-
gerd authored
from the block's home lambda. This fixes a compiler bug showing up when evaluating (tagbody (go loop) (block g1472 #'(lambda () (return-from g1472 nil))) loop) but doesn't fix an IR1 inconsistency (c::*check-consistency* true} that existed already before.
-
- Mar 10, 2003
- Jan 06, 2003
-
-
toy authored
have the semi-colon prefix.
-
- Aug 26, 2002
-
-
toy authored
-
- Aug 25, 2002
-
-
toy authored
so (if test exp exp) might be converted to (progn test exp).
-
- Aug 21, 2002
-
-
toy authored
Dejneka that fixes the bug where The assertion (EQ (C::LAMBDA-TAIL-SET C::CALLER) (C::LAMBDA-TAIL-SET (C::LAMBDA-HOME C::CALLEE))) failed.
-
- Jun 17, 2001
-
-
pw authored
Fix some error types to be ANSI compliant.
-
- Mar 04, 2001
-
-
pw authored
-
- Jul 07, 2000
-
-
dtc authored
return values, and replace them with function argument declarations which the compiler move carefully checks.
-
- Jun 18, 2000
-
-
dtc authored
environment, for block exits and tagbody entries, are updated when continuations are substituted. Add a cont-ref structure, and a new slot to continuations which holds the list of these references to be be updated when the continuation is substituted. Based on the work of Tim Moore.
-
- Feb 28, 2000
-
-
dtc authored
o Weaken the compiler warnings generated for unused or used variables to be style-warnings as specified by ANSI CL. o Check for ignore declarations of free variables, and when such variables are found generate a style-warning noting that the declaration has been ignored.
-
- Feb 24, 1998
-
-
dtc authored
-
- Oct 31, 1994
-
-
ram authored
-
- Feb 11, 1994
-
-
cvs2git authored
-
- Feb 10, 1994
-
-
ram authored
-
- Feb 08, 1994
-
-
wlott authored
always either a lambda or an optional dispatch, because sometimes raw functionals get passed in. This way we will get a better error message.
-
- Nov 16, 1993
- Aug 31, 1993
-
-
ram authored
-
- Aug 25, 1993
-
-
ram authored
-
- Aug 24, 1993
-
-
wlott authored
dylan code, because the dylan test suite modifies manifest constants. This is gross.
-
- Aug 20, 1993
-
-
ram authored
compiled.
-
- Aug 17, 1993
-
-
ram authored
undefined warnings (where the default handler can be multiply instantiated.)
-
- Aug 15, 1993
-
-
ram authored
tail, consider that like having only one successor.
-
- Aug 06, 1993
-
-
ram authored
-
- Aug 03, 1993
-
-
ram authored
-