- May 24, 2003
-
-
gerd authored
Add some text wrt fdefinition/(setf fdefinition). * src/code/fdefinition.lisp (fdefinition, %set-fdefinition): Improve doc strings.
-
- May 23, 2003
-
-
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.
-
- May 17, 2003
-
-
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.
-
- Mar 31, 2003
-
-
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.
-
- Feb 16, 2003
-
-
emarsden authored
VALID-FUNCTION-NAME-P, instead of checking for (setf xxx) names. Declare two new valid function name classes: names of the form (:macro foo) (:compiler-macro foo) that are now used to name lambda nodes in IR1.
-
- Feb 05, 2003
-
-
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.
-
- Dec 10, 2001
-
-
pmai authored
is generally the right thing to do, and especially fixes the reported bug that fmakunbound had no real effect on macros.
-
- Feb 22, 2001
-
-
pw authored
A couple of typo corrections; fix main() in lisp.c (main returns int, not void!); stop ACCEPT-TCP-CONNECTION blocking other processes.
-
- Jul 14, 1998
-
-
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.
-
- Oct 31, 1994
-
-
ram authored
-
- Feb 11, 1994
-
-
cvs2git authored
-
- Jan 13, 1993
-
-
cvs2git authored
-
- Dec 13, 1992
-
-
wlott authored
-
- Mar 09, 1992
-
-
wlott authored
-
- Mar 08, 1992
-
-
wlott authored
-
- Feb 24, 1992
-
-
wlott authored
-
- Nov 07, 1991
-
-
chiles authored
Fixed %SET-FDEFINITION to work in the kernel core startup before executing DEFVARs for *encapsulation-info* and *setf-fdefinition-hook*.
-
- Nov 05, 1991
-
-
ram authored
compiled small.
-
- Nov 01, 1991
-
-
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.
-
- Oct 31, 1991
-
-
chiles authored
Fixed a couple doc strings.
-
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.
-
- Apr 23, 1991
-
-
ram authored
-
- Feb 08, 1991
-
-
ram authored
-
- Sep 23, 1990
-
-
wlott authored
functions.
-
- Aug 24, 1990
-
-
wlott authored
-
- May 30, 1990
-
-
cvs2git authored
-
- Apr 20, 1990
-
-
wlott authored
set-symbol-function-carefully so that we can use them before we get all the trace stuff up and running.
-
- Apr 13, 1990
-
-
wlott authored
-
- Mar 05, 1990
-
-
cvs2git authored
-
- Feb 06, 1990
-
-
ram authored
-