- 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.
-
- Jun 11, 2003
-
-
emarsden authored
- update for new function names (esp for CLOS code) - XREF-CONTEXT structures are now dumpable (to save information in FASL form) - reverse who-calls now uses a dedicated hash-table instead of looking for source code on disk - add WHO-MACROEXPANDS The code still isn't very clever about discarding compiler-generated function calls in CLOS code.
-
- Mar 22, 2003
-
-
gerd authored
= pcl:class part. To get it booted from 18e, cross-compile using boot1.lisp as bootstrap.lisp in pmai's build scripts, then do a normal compile with boot2.lisp as bootstrap.lisp with the resulting Lisp. * code/byte-interp.lisp, code/defstruct.lisp, code/describe.lisp: * code/error.lisp, code/exports.lisp, code/hash-new.lisp: * code/hash.lisp, code/macros.lisp, code/misc.lisp: * code/package.lisp, code/pred.lisp, code/sharpm.lisp, code/type.lisp: * compiler/dump.lisp, compiler/fndb.lisp, compiler/globaldb.lisp: * compiler/proclaim.lisp, compiler/typetran.lisp, compiler/xref.lisp: * compiler/generic/primtype.lisp, compiler/generic/vm-type.lisp: Changes for to use kernel::class etc. * code/class.lisp (toplevel): Shadow class, built-in-class etc. (class): Give it conc-name %class-. (toplevel) [#+bootstrap-lisp-class=pcl-class]: Define old accessors. (everywhere): Use new class accessors. * compiler/generic/vm-fndb.lisp (%make-instance): Change from unsafe to flushable and movable. * code/ntrace.lisp (expand-trace, untrace): Changes for method tracing. * code/profile.lisp (profile, profile-all, unprofile): Method profiling. * pcl/*.text, pcl/bench.lisp, pcl/extensions.lisp: * pcl/fast-init.lisp, pcl/precom1.lisp, pcl/precom4.lisp: * pcl/structure-class.lisp, pcl/user-instances.lisp: Removed. * tools/pclcom.lisp: Changes for my PCL and lisp:class = pcl::class.
-
- Feb 24, 2003
-
-
emarsden authored
-
- Feb 05, 2003
-
-
emarsden authored
-