- Jul 26, 2005
-
-
rtoy authored
-
- Jun 06, 2005
-
-
rtoy authored
Fix from Gerd, cmucl-imp, 2005-06-04 for the following test: (define-method-combination mc () ((primary () :required t)) `(restart-case (call-method ,(first primary)) ())) (defgeneric foo () (:method-combination mc) (:method () nil)) (foo) It turns out this is caused by RESTART-CASE macroexpanding its case expression, which it does to see if it starts with ERROR or similar. An ANSI thing, if I remember correctly.
-
- Apr 02, 2004
-
-
rtoy authored
-
- Mar 29, 2004
-
-
rtoy authored
Patch from Ole, very slightly modified.
-
- Nov 05, 2003
-
-
gerd authored
(defmethod name :before ((data data))) (name (make-instance 'data)) => too few args in a call to a method function This is caused by standard-reader/writer methods having a fast-function, but that's not the one that we should funcall if pcl::*inline-methods-in-emfs* is true. Use the fast-method-call mechanism for such methods instead. * src/pcl/combin.lisp (inlinable-method-p): New function. (make-direct-calls): Removed. (memf-test-converter): Add a local function method-key for determining the function generator key. (memf-code-converter): Add local functions make-call and make-calls. Generate direct calls if inlinable-method-p returns true.
-
- Sep 05, 2003
-
-
gerd authored
unmatched parenthesis. * src/pcl/combin.lisp (standard-compute-effective-method): Remove an ignore declaration, add a special declaration.
-
- Aug 25, 2003
-
-
gerd authored
for ANSI compliance. * src/pcl/defcombin.lisp (compute-effective-method): If *in-precompute-effective-methods-p*, generate an emf consisting of a call to %invalid-qualifiers if there are such methods. * src/pcl/combin.lisp (standard-compute-effective-method): Likewise. (make-effective-method-lambda): Handle %invalid-qualifiers like %no-primary-method. * src/pcl/braid.lisp (%invalid-qualifiers): New function. (invalid-qualifiers): New method. * src/pcl/generic-functions.lisp (invalid-qualifiers): New gf. * src/pcl/dfun.lisp (*max-emf-precomputation-methods*): Set to 100. * src/docs/cmu-user/extensions.tex (Effective Method Precomputation): Change description of *max-emf-precomputation-methods*.
-
- May 30, 2003
-
-
gerd authored
(SETF FDEFINITION), and it's possible to define methods with both names. Method functions are named with the name specified in DEFMETHODS. Methods metaobjects are unnamed. Taking this all together means that we must always use METHOD-FUNCTION-GET :NAME to find out the name of a method function if we want to use it. This showed up in gray-streams.lisp. Found by Paul Werkowski. * src/pcl/boot.lisp (method-function-name): Moved here from combin.lisp; use method-function-get :name. * src/pcl/combin.lisp (method-function-name): Move to boot.lisp.
-
- 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.
-
- May 25, 2003
-
-
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 04, 2003
-
-
gerd authored
* src/pcl/defsys.lisp ("PCL", "WALKER"): Use ext. * src/pcl/pkg.lisp ("PCL", "WALKER"): Use ext. * src/pcl/*.lisp: Remove ext: prefixes. * src/pcl/low.lisp (symbolicate*): Renamed from symbolicate. * src/pcl/std-class.lisp (shared-initialize): * src/pcl/defs.lisp (get-built-in-class-symbol) (get-built-in-wrapper-symbol): * src/pcl/braid.lisp (initial-classes-and-wrappers) (bootstrap-meta-braid): Use symbolicate*. * src/pcl/macros.lisp (dolist-carefully): Removed. (true, false, zero): Moved to defclass.lisp. (printing-random-thing-internal): Removed. (printing-random-thing): Removed. (rassq): Removed. (*keyword-package*): Removed. (make-keyword): Removed; import from cl. (memq, delq, assq): Macros removed, import from ext. (get-declaration): Moved to boot.lisp, where it's used. * src/pcl/boot.lisp (get-declaration): Moved here from macros.lisp. * src/pcl/methods.lisp (named-object-print-function, print-object): * src/pcl/low.lisp (print-std-instance): * src/pcl/dfun.lisp (print-dfun-info): * src/pcl/cache.lisp (print-cache, print-wrapper): * src/pcl/boot.lisp (make-early-gf): Use print-unreadable-object instead of printing-random-thing. * src/pcl/defclass.lisp (true, false, zero): Moved here from macros.lisp. * src/pcl/methods.lisp (legal-qualifiers-p) (legal-specializers-p): Use dolist.
-
- Mar 22, 2003
-
-
gerd authored
= 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.
-
- Jan 03, 2003
-
-
pmai authored
Updated the fix for the broken handling of the :arguments option to define-method-combination to Gerd Moellmann's latest patch. Also includes various indentation fixes and a smallish documentation/comment fix.
-
- Dec 18, 2002
-
-
pmai authored
Merged patches and ideas by Gerd Moellmann and Christophe Rhodes to improve error reporting on missing applicable primary methods for standard method- combination to report the arguments that were passed to the GF in question.
-
- Aug 26, 2002
-
-
pmai authored
in favor of normal CL constructs. In a similar vein to SBCL, this patch also replaces all uses of #'(lambda ...) by just (lambda ...), and removes now-dated looking quotes in front of self-evaluating objects, like keywords and t/nil. The patch has been slightly frobbed by me, to correct a couple of slight oversights, and make more effective use of the loop facility in a number of places.
-
- Apr 25, 2001
-
-
pmai authored
by fixing bootstrapping problems with the disabled around method of COMPUTE-EFFECTIVE-METHOD, and reinstating it. o Added stricter error checking for standard method combination.
-
- May 30, 1999
-
-
pw authored
is essentially Common Lisp except for explicit references to things in CMUCL specific packages.
-
- Dec 20, 1998
-
-
dtc authored
-
- Jan 22, 1998
-
-
pw authored
warning like ".ARG0. is defined but not used" was being emitted. Turns out that in such a case PCL generates an effective-method consisting of (error "No primary method for ...") or some such, thus ignoring the user method and not passing the supplied arguments to error. This change checks for the above case and inserts an ignorable declaration for the method arguments.
-
- Feb 11, 1994
-
-
cvs2git authored
-
- Jan 13, 1993
-
-
cvs2git authored
-
- Jan 12, 1993
-
-
phg authored
to Rick Harris.
-
- Nov 09, 1992
-
-
ram authored
-
- Aug 01, 1992
-
-
ram authored
-
- Jun 01, 1992
-
-
ram authored
-
- Oct 19, 1991
-
-
ram authored
-
- Aug 12, 1990
-
-
wlott authored
-