Skip to content
Snippets Groups Projects
  1. Oct 02, 2003
    • gerd's avatar
      (compile nil · 5d00555f
      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.
      5d00555f
  2. Jun 11, 2003
    • emarsden's avatar
      XREF improvements: · b623815a
      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.
      b623815a
  3. Mar 22, 2003
    • gerd's avatar
      * bootfiles/18e/boot[12].lisp: Bootstrap files for the lisp:class · a1e3ed93
      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.
      a1e3ed93
  4. Feb 24, 2003
  5. Feb 05, 2003
Loading