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.
Merge changes from HEAD branch: * code/parse-time.lisp: Fix typo * code/profile.lisp: callers-p boolean fix. * general-info/release-19b.txt: Update for 19b. * tools/build.sh Added quoting of $VERSION
Fix typo. (From Gerd.)
The CALLERS-P slot of PROFILE-INFO was sometimes set to a non-boolean. Fix it. From Gerd, cmucl-imp, 2005-05-26.
Fix bug in profile-all not being able to profile all symbols because ensure-profile-fwrapper was not able to create profile fwrappers for 4 or more args. This is a hack; I don't know why the original version doesn't work.
Compute column widths so the columns of the profile report line up neatly. (Currently only for the time report, not space report.)
* src/code/profile.lisp (profile-1-function): Call fwrap with the constructor function instead of its name.
Add fwrappers. Rewrite TRACE and PROFILE to use fwrappers. To bootstrap, use boot12.lisp with pmai's scripts. * src/bootfiles/18e/boot12.lisp: New file. * src/tools/worldload.lisp, src/tools/worldcom.lisp: * src/tools/worldbuild.lisp: Add code:fwrappers. * src/docs/cmu-user/extensions.tex (Function Wrappers): New section. * src/code/fwrappers.lisp: New file. * src-fw/pcl/defs.lisp (gdefinition): Don't check for profiled functions. * src-fw/code/exports.lisp: Add walker and fwrappers. * src-fw/code/fdefinition.lisp (fdefn-init): Set *valid-function-names* to nil. (encapsulation): Structure removed. (do-encapsulations, encapsulation, last-encapsulation) (push-encapsulation, encapsulate, unencapsulate, encapsulated-p): Removed. There is a compatibility layer in fwrappers.lisp. (fdefinition, %set-fdefinition): Rewritten. * src/code/profile.lisp: Remove #+cmu and #-cmu. ("PROFILE"): Use fwrappers. (*profile-info*): Removed. (profile-info): Redefined. (*existing-encapsulations*): Removed. (reset-profile-info, profile-info-profiling-values): New functions. (make-profile-encapsulation): Removed. (profile): New function name syntax. (make-profile-fwrapper-name, make-profile-fwrapper): New functions. (def-profile-fwrapper): Precompute some fwrappers. (ensure-profile-fwrapper, find-profile-fwrapper, pi-or-lose): New functions. (profile-1-function): Rewritten. (unprofile-1-function): Ditto. (re-profile-redefined-function): New function. (toplevel): Push it on *setf-fdefinition-hook*. * src/code/ntrace.lisp (trace-call): Removed. (trace-fwrapper): New fwrapper. (trace-1): Use fwrap instead of encapsulate. (untrace-1): Use funwrap instead of unencapsulate.
Let TRACE and PROFILE ignore package locks. * src/code/ntrace.lisp (trace-1, untrace-1): Use without-package-locks. * src/code/profile.lisp (make-profile-encapsulation) (unprofile-1-function): Use without-package-locks. (compute-time-overhead): Don't use without-package-locks.
* src/code/profile.lisp (compute-time-overhead): Use without-package-locks.
* src/code/profile.lisp (unprofile): Default names to *timed-functions*.
Merge with HEAD
* 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.
*** empty log message ***
Fix typo in ignore declaration.
Remove stale code. Before I committed the full profiler changes, we had a non-working interim version that carried around fractions of the dfixnum package, inside profile.lisp. Remove it, the profiler is now using double-fixnums from the dfixnum package/file. Tested: tried it out in ITA build, builds and profiler runs fine with this stuff removed.
Generalized function names. * code/fdefinition.lisp (*valid-function-names*): New variable. (%define-function-name-syntax, valid-function-name-p): New functions. (define-function-name-syntax): New macro. (toplevel): Define the syntax of setf function names. (fdefinition-object): Use valid-function-name-p. * compiler/proclaim.lisp (check-function-name): Use valid-function-name-p. * compiler/ir1tran.lisp (function): Use valid-function-name-p. * code/profile.lisp (%report-times): Use valid-function-name-p. * code/macros.lisp (defun): Use valid-function-name-p. * code/eval.lisp (eval): Use valid-function-name-p. * code/describe.lisp (describe-aux, describe-function-name): Use valid-function-name-p. * code/exports.lisp ("EXTENSIONS"): Add define-function-name-syntax and valid-function-name-p.
REQUIRED-ARGUMENT is in the EXT package.
From Eric Marsden: fix typos in comments, signal more specific error types, remove some stale code, fix a few compiler warnings in the runtime.
Don't try to profile special-operators because we can't encapsulate them. Problem and solution by Eric Marsden.
o Reinstate the printing of the callers-p results. o Reinstate printing of the profiled functions that weren't called during the profile run. o Honor *no-calls-limit* when printing functions that weren't called.
Make (time ...) and the profiler do precise measuring of space allocation. It will also not overflow or bomb out when consing amounts cross most-positive fixnum. The new profiler also has an interface to plug in your own print function (also dictates sorting or results). This is written on gencgc/x86 but tests indicated the fallsbacks for other platforms work. The dfixnum package included here is sketchy.
Allow larger consing values when profiling by using two fixnums to hold the consing values (to reduce consing in the profiling routines themselves). Based on the double-fixnum idea of Martin Cracauer.
Make the profile report print everything in neat, uniform columns even when the individual entries vary greatly in length.
profile:report-time doesn't print out a long list of functions that were not profiled anymore. The cutoff is user-configurable by setting the (new) variable profile::*no-calls-limit* appropriately.
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation for release tagging 18d.
Added specialised port to OpenBSD (2.9). Many parts of the original code which were previously conditionalized on :FreeBSD, are now conditionalized on :BSD instead, with the :BSD feature now implying a 4.4BSD(lite2) derived OS. This should make future BSD-ports easier. FreeBSD and OpenBSD are differentiated by having either :FreeBSD or :OpenBSD on the features list. Currently the OpenBSD port does not have working ELF support, because OpenBSD 2.9 is still non-ELF by default. So don't put ELF on the features list when building for OpenBSD, or fix the code to work correctly in this case instead.
Change most PROCLAIMs to DECLAIMs.
This (huge) revision brings the RELENG_18 branch up to the current HEAD. Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.
Update the profiler caller-info code for the x86 port which represent a return address as a SAP. To save the costly calculation of the SAPs code object the profiler maintains callers as SAPs assuming the caller code objects will not move. GENCGC may move code objects and these should be GCed to an older generation before profiling else some caller code objects may be lost.
Add rev 1.17 to branch
Generalize package finding in profile-all.
Back-out unused symbol report-times introduced in previous commit.
Add function profile-all by Raymond Toy. On FreeBSD times can slip backwards giving negative time deltas which caused type errors. Check for negative deltas on FreeBSD and use 0.
Fix headed boilerplate.
Fixed %report-times to not choak if any of the function names are not symbols (e.g. setf functions).
Don't warn about &rest consing if we can't figure out what the argument signature is, because we don't use &rest anymore.
get-internal-run-time now works under hpux, so go ahead and use it. In cmucl, use &more instead of &rest to avoid consing the &rest arg list.
Reduced the number of recompiled profile encapsulations.
Add :CALLERS option to PROFILE which counts the most common callers of each profiled function.
debug-info => debug
Changed argument count determination to parse the function type and look at it, instead of trying to fake it. Among other things, this allows efficient profiling of functions with FTYPE declarations even when compilation policy has caused the function-object's type to be dropped.
Really make sure compute-time-overhead-ax has function type info.
Use LOCALLY to frob the debug-info level for COMPUTE-TIME-OVERHEAD-AUX, since a declaration at the head of the body doesn't do it.
Changed REQUIRED-ARGUMENTS to recognize closures and funcallable instances, and to print a warning if there is no arg count information (due to low DEBUG level.)
Fixed REQUIRE-ARGUMENTS to work on functions with no argcount info. Fixed COMPUTE-TIME-OVERHEAD-AUX to always have arg info.
Checked in new version which computes the time overhead on first call to report-times, rather than at load time (so that it will be right for the machine run on, rather than the machine built on.) Tweaked some compiler conditionals and fixed some wrong-type slot defaults.
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|