Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Merge intl-branch 2010-03-18 to HEAD. To build, you need to use boot-2010-02-1 as the bootstrap file. You should probably also use the new -P option for build.sh to generate and update the po files while building.
Restart internalization work. This new branch starts with code from the intl-branch on date 2010-02-12 18:00:00+0500. This version works and LANG=en@piglatin bin/lisp works (once the piglatin translation is added).
Add (intl:textdomain "cmucl") to the files to set the textdomain.
Merge code from main branch of 2005-12-17 to ppc gencgc branch. Still doesn't work of course.
Save xref information to fasls. This is done by faking it. The file being compiled is compiled as usual, but we append fake forms to the file as if they came from the file. These fake forms insert the necessary information into the xref databases when the fasl is loaded. To support this feature, we also updated COMPILE-FILE to recognize the :xref keyword arg. Set this to non-NIL to enable computing and saving xref information. code/exports.lisp: o Update XREF exports compiler/fndb.lisp: o Update with new definition of COMPILE-FILE. compiler/main.lisp: o Append fake forms to the file being compiled to save xref information to the fasl. This clears out any xref info we might have for the file, and inserts the necessary xref information into the database. o Add :XREF keyword arg to COMPILE-FILE. Default value of :XREF is C::*RECORD-XREF-INFO*. compiler/xref.lisp: o Add function to invalidate xref info for a given namestring, so we can reset the info when a fasl with xref info is loaded. o Add a function to find all xref information for a given pathname. Used for saving xref info to a fasl.
(compile nil '(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.
XREF improvements: - 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.
* bootfiles/18e/boot.lisp: Bootstrap files for the lisp:class = 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.
* 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: Changes for lisp:class = pcl:class. * compiler/dump.lisp, compiler/fndb.lisp, compiler/globaldb.lisp: * compiler/ir1tran.lisp, compiler/ir1util.lisp: * compiler/node.lisp, compiler/proclaim.lisp, compiler/typetran.lisp: * compiler/xref.lisp, compiler/generic/primtype.lisp: * compiler/generic/vm-type.lisp: Likewise. * code/class.lisp (toplevel): Shadow class, built-in-class etc. (class): Give it conc-name %class-. (toplevel) [#-lisp-class-is-pcl-class]: Define old accessors. (everywhere): Use new class accessors. * code/byte-interp.lisp (load-type-predicate): Use kernel::structure-class instead of structure-class.
Delete some unreachable code and debugging statements.
New files added from the XREF facility.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|