Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • gerd's avatar
    e9211546
    Add fwrappers. Rewrite TRACE and PROFILE to use fwrappers. · e9211546
    gerd authored
    	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.
    e9211546
    History
    Add fwrappers. Rewrite TRACE and PROFILE to use fwrappers.
    gerd authored
    	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.