Skip to content
Snippets Groups Projects
  1. May 24, 2003
  2. May 23, 2003
    • gerd's avatar
      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
  3. May 17, 2003
    • gerd's avatar
      Replace ENCAPSULATION-INFO with a funcallable structure · 85f76d5e
      gerd authored
      	ENCAPSULATION, making it possible to write more efficient
      	encapsulations than currently possible.
      
      	* src/code/fdefinition.lisp (fdefn-or-lose): New function.
      	(%coerce-to-function): Use it.
      	(encapsulation): Funcallable structure replacing encapsulation-info.
      	(print-encapsulation-info): Removed.
      	(do-encapsulations): New macro.
      	(encapsulation): Replaces function encapsulation-info.
      	(last-encapsulation, push-encapsulation): New functions.
      	(encapsulate, unencapsulate, encapsulated-p, fdefinition):
      	Rewritten.
      85f76d5e
  4. Mar 31, 2003
    • gerd's avatar
      Name local functions (FLET ...) or (LABELS ...). · cf3f726a
      gerd authored
      	* compiler/ir1tran.lisp (*current-function-names*): New variable.
      	(find-lexically-apparent-function): Use lexenv-find-function.
      	(ir1-convert): Likewise.
      	(ir1-convert-lambda): Bind *current-function-names*.
      	(do-macrolet-stuff): Likewise.
      	(extract-flet-variables): Determine function name from
      	(%cleanup-function): Use lexenv-find-function.
      
      	* compiler/main.lisp (compile): Bind *current-function-names*.
      
      	* compiler/macros.lisp (lexenv-find-function): New function.
      
      	* code/fdefinition.lisp (flet, labels): Define function names.
      
      	* pcl/walk.lisp (environment-function): Activate code for
      	handling flet/labels function names.
      cf3f726a
  5. Feb 16, 2003
  6. Feb 05, 2003
    • gerd's avatar
      Generalized function names. · a1a66688
      gerd authored
      	* 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.
      a1a66688
  7. Dec 10, 2001
  8. Feb 22, 2001
    • pw's avatar
      From Paul Foley · b221deeb
      pw authored
      A couple of typo corrections; fix main() in lisp.c (main returns int,
      not void!); stop ACCEPT-TCP-CONNECTION blocking other processes.
      b221deeb
  9. Jul 14, 1998
    • pw's avatar
      This revision merges in many of the fixes for ANSI condition types · 42efe00d
      pw authored
      in various calls to ERROR. Those easily handled by using new condition
      types simple-file-error and simple-program-error are included.
      
      The only functional change here is that the function CHARACTER no longer
      accepts an integer argument so as to be ANSI compliant. This may
      break some code.
      42efe00d
  10. Oct 31, 1994
  11. Feb 11, 1994
  12. Jan 13, 1993
  13. Dec 13, 1992
  14. Mar 09, 1992
    • wlott's avatar
      typo · 13792b3f
      wlott authored
      13792b3f
  15. Mar 08, 1992
  16. Feb 24, 1992
  17. Nov 07, 1991
    • chiles's avatar
      · e80028ff
      chiles authored
      Fixed %SET-FDEFINITION to work in the kernel core startup before executing
      DEFVARs for *encapsulation-info* and *setf-fdefinition-hook*.
      e80028ff
  18. Nov 05, 1991
  19. Nov 01, 1991
    • chiles's avatar
      · 53adbe16
      chiles authored
      Added new interface ext:*setf-fdefinition-hook* which is a list of functions
      invoked by (SETF FDEFINITION) before storing the new value.  Each hook function
      must take the function name and the new-value.
      53adbe16
  20. Oct 31, 1991
    • chiles's avatar
      · 7d79d684
      chiles authored
      Fixed a couple doc strings.
      7d79d684
    • chiles's avatar
      · 5ce639ce
      chiles authored
      Fdefinition.lisp is all new, and it contains the following interface routines:
      
         EXT:ENCAPSULATED-DEFINITION
            Returns whatever definition is stored for name, regardless of whether it
            is encapsulated.  This is SETF'able.
         EXT:ENCAPSULATE
            Replaces the definition of name with a function that binds name's
            arguments a variable named argument-list, binds name's definition to a
            variable named basic-definition, and EVAL's body in that context.  Type
            is whatever you would like to associate with this encapsulation for
            identification in case you need multiple encapsuations of the same name.
         EXT:UNENCAPSULATE
            Removes name's most recent encapsulation of the specified type.
         EXT:ENCAPSULATED-P
            Returns t if name has an encapsulation of the given type, otherwise nil.
      
         LISP:FDEFINITION
            Return name's global function definition.  This is SETF'able.
         LISP:FBOUNDP
            Return true if name has a global function definition.
         LISP:FMAKUNBOUND
            Make Name have no global function definition.
      5ce639ce
  21. Apr 23, 1991
  22. Feb 08, 1991
  23. Sep 23, 1990
  24. Aug 24, 1990
  25. May 30, 1990
  26. Apr 20, 1990
  27. Apr 13, 1990
  28. Mar 05, 1990
  29. Feb 06, 1990
Loading