- May 28, 2003
-
-
gerd authored
* src-emf/docs/cmu-user/extensions.tex (Inlineing Methods in Effective Methods): New subsection. * src-emf/pcl/combin.lisp: (method-function-name, make-direct-call, make-direct-calls) (call-method-list-methods): New functions. (memf-test-converter, memf-code-converter): Arrange for generating funcalls instead of invoke- macros. * src-emf/pcl/boot.lisp (*inline-methods-in-emfs*): New variable. (expand-defmethod): If set, arrange for inlineing fast method functions. * src-emf/pcl/pkg.lisp ("PCL"): Export flush-emf-cache. * src-emf/pcl/fngen.lisp (flush-emf-cache): New function.
-
gerd authored
* src/code/loop.lisp (loop-for-arithmetic): Use type number instead of real.
-
gerd authored
* src/pcl/std-class.lisp (*allow-funny-slot-names*): Renamed from *allow-keyword-slot-names*. * src/pcl/methods.lisp (legal-slot-name-p): Allow any symbol if *allow-funny-slot-names* is true. (shared-initialize): Print the value of the :slot-name initarg. * src/code/defstruct.lisp (parse-1-dsd): Treat nil as symbol when used as a slot name.
-
- May 27, 2003
- May 26, 2003
-
-
gerd authored
-
gerd authored
:expected-type, which lead to the conditions which were not displayable because the corresponding condition slots are not bound. * src/code/seq.lisp (coerce): * src/code/list.lisp (nreconc): * src/code/interr.lisp (invalid-array-index-error): * src/code/bignum.lisp (bignum-to-float): * src/code/byte-interp.lisp (%byte-car, %byte-cdr): Fix type-errors to include :datum and/or :expected-type. Add &more handling to the byte-compiler and -interpreter. Reported by Paul Werkowski on cmucl-imp. * src/compiler/byte-comp.lisp (make-xep-for): Handle &more. * src/code/byte-interp.lisp (hairy-byte-function): Change type of rest-arg-p slot. (invoke-xep): Handle &more.
-
gerd authored
-
pmai authored
-
pmai authored
-
pmai authored
-
gerd authored
informative error messages. From Lynn Quam, on cmucl-imp.
-
- May 25, 2003
-
-
gerd authored
to invalid-wrapper-p to get rid of compiler notes.
-
gerd authored
method-lambda-list instead of method-lambda-list* because the method can't be an early method at this point.
-
gerd authored
an inhibit-warnings. See the comment there for the reason.
-
gerd authored
-
gerd authored
functions. Found by Paul Dietz, of course. This also includes some minor code cleanup and a fix for a bug caused by a typo. * src-gf/pcl/std-class.lisp (compute-effective-slot-definition-initargs): Reformatted to make it readable on a tty. * src-gf/pcl/methods.lisp (set-condition-svuc-method): Fix a typo. * src-gf/pcl/low.lisp (parse-lambda-list): Add an ignore declaration. * src-gf/pcl/init.lisp (valid-initargs): Use method-lambda-list*. * src-gf/pcl/dfun.lisp (use-caching-dfun-p): Use generic-function-methods*. (use-constant-value-dfun-p): Ditto. (use-dispatch-dfun-p): Don't use dispatching dfuns when we must check keyword arguments according to CLHS 7.6.5, because this computes emfs for sets methods that aren't applicable together in the usual sense; this screws up emf keyword argument checking, of course. (make-initial-dfun): Use gf-arg-info*. (update-dfun): Use generic-function-name*. (final-accessor-dfun-type, make-accessor-table) (compute-applicable-methods-using-types) (compute-applicable-methods-using-types): Likewise. * src-gf/pcl/combin.lisp (standard-compute-effective-method): Don't use the single-call-method optimization if we must check keyword arguments according to CLHS 7.6.5. (callable-generator-for-emf): Rewritten to add a keyword argument check to the emf. (emfs-must-check-applicable-keywords-p) (compute-applicable-keywords, check-applicable-keywords): New functions. (odd-number-of-keyword-arguments, invalid-keyword-argument): Moved here from boot.lisp. (make-effective-method-lambda): Add a check-applicable-keywords form to the emf, if appropriate. (memf-test-converter, memf-code-converter) (memf-constant-converter): Deal with check-applicable-keywords. (*applicable-methods*): New variable. (make-callable): Bind it. (make-emf-name): Use generic-function-name*. * src/pcl/braid.lisp (ensure-non-standard-class): Remove an used branch. * src/pcl/boot.lisp (*make-method-lambda-gf-name*): Removed. (expand-defmethod): Don't bind it. (make-method-lambda-internal): Don't add &key to the method function's lambda-list if the gf has &key. (bind-args): Rewritten. Don't do keyword checking as this is done in emfs now. (get-key-arg, get-key-arg1): Simplified; do less checking. (generic-function-name*, generic-function-methods*) (gf-arg-info*, method-lambda-list*): New functions. (check-method-arg-info): Use them. (gf-lambda-list-from-method): New function. (gf-lambda-list): Use it. Don't add &allow-other-keys to a gf's lambda-list if a method has &key. (get-generic-function-info): Use gf-arg-info*. (parse-specialized-lambda-list): Add an ignore declaration. (odd-number-of-keyword-arguments, invalid-keyword-argument): Moved to combin.lisp. (check-generic-function-lambda-list): Remove &more stuff because that's checked elsewhere now (and Python can even tell it is). * src-gf/pcl/ctor.lisp (install-optimized-constructor): Remove an unmatched ).
-
- 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
-
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.
-
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.
-
gerd authored
function. * src/pcl/boot.lisp (set-arg-info1): Use it instead of relying on valid-function-name-p to return nil as second value for PCL-internal functions.
-
- May 22, 2003
-
-
gerd authored
-
- May 21, 2003
-
-
emarsden authored
something of the form (pcl::method name specializers...), instead of (:method name specializers).
-
- May 20, 2003
-
-
gerd authored
declaration identifiers from EXT.
-
gerd authored
-
gerd authored
NOT-AUTO-COMPILE to EXT. To bootstrap, using pmai's scripts, copy boot11.lisp to target:bootstrap.lisp and build. * src/bootfiles/18e/boot11.lisp: New file. * src/code/exports.lisp ("EXTENSIONS"): Export slots, auto-compile, no-auto-compile. * src/pcl/info.lisp: Don't export slots, auto-compile, not-auto-compile. * src/docs/cmu-user/extensions.tex: Declaration identifiers moved from pcl: to ext:.
-
gerd authored
which is necessary for conforming SLOT-EXISTS-P and MAKE-LOAD-FORM-SAVING-SLOTS. To bootstrap, using pmai's build scripts: 1. Copy boot10.lisp to target:bootstrap.lisp and do a full build. Choose the CLOBBER-IT restart when asked (for an unknown reason, it doesn't work to do this programatically.) 2. Leave the bootstrap file where it is and do a full build with the Lisp produced in step 1. 3. Remove the bootstrap file and do another full build. * src/bootfiles/18e/boot10.lisp: New file. * src-dsd/code/defstruct.lisp (defstruct-slot-description): Rename slot %name to name. (dsd-%name): New function. (dsd-name): Function removed. (parse-1-dsd): Set dsd-name to the slot symbol. * src-dsd/pcl/std-class.lisp (*allow-keyword-slot-names*): New variable. (initialize-internal-slot-functions) <around structure-effective-slot-definition>: New method binding *allow-keyword-slot-names* to true. * src-dsd/pcl/methods.lisp (legal-slot-name-p): Allow keywords if *allow-keyword-slot-names* is true.
-
- May 19, 2003
-
-
gerd authored
ACL. Problem found by Christophe Rhodes. * src/pcl/low.lisp (structure-slotd-writer-function): Create a writer function for read-only slots. * src/pcl/braid.lisp (ensure-non-standard-class): Call structure-slotd-writer-function with additional arg.
-
toy authored
The lisp-fn takes 2 fixnum args, not 1. (Noted by Eric Marsden.)
-
gerd authored
-
gerd authored
-
gerd authored
-
gerd authored
* src/pcl/boot.lisp (expand-defgeneric): Add argument precedence order option checking.
-
- May 18, 2003
-
-
gerd authored
variables. * src/pcl/boot.lisp (parse-generic-function-lambda-list) (analyze-lambda-list, parse-specialized-lambda-list): Use parse-lambda-list. (expand-defmethod): Proclaim the generic function using the unspecialized lambda list, not the method's specialized lambda list. * src/pcl/low.lisp (parse-lambda-list): New function.
-
gerd authored
arguments without signaling an error. Found by Paul Dietz' test suite, MAKE-LOAD-FORM.ERROR.2. * src/pcl/boot.lisp (too-many-args): New function. (bind-args): Use it.
-
- May 17, 2003