From: Pascal C. <pc...@p-...> - 2009-10-13 09:57:20
|
It's good that qualifiers are in general checked only at 'method combination time', because the restrictions which qualifiers are considered valid or not may depend on conditions that can only be decided then. Note that the long form of define-method-combination as well as methods defined on compute-effective-method in the CLOS MOP may add such more or less dynamic restrictions. As always, if only instances of standard metaclasses are used, a compiler can be more strict. It could be that ANSI Common Lisp intentionally left this more open because the CLOS MOP specified wasn't finalized yet at that time. Pascal On 12 Oct 2009, at 18:33, Tobias C. Rittweiler wrote: > > On the following > > (defgeneric foo (a b) > (:method-combination append)) > > (defmethod foo ((x (eql :foo)) b) > (list x b)) > > SBCL will signal a warning > > Invalid qualifiers for APPEND method combination in method ... > > at _load-time_. > > in REAL-ADD-METHODS in src/pcl/methods.lisp, there's the following > comment by Xof: > > ;; KLUDGE II: ANSI saith that it is not an error to add a > ;; method with invalid qualifiers to a generic function of the > ;; wrong kind; it's only an error at generic function > ;; invocation time; I dunno what the rationale was, and it > ;; sucks. Nevertheless, it's probably a programmer error, so > ;; let's warn anyway. -- CSR, 2003-08-20 > > and I wonder if SBCL couldn't signal the warning at compilation-time, > too, so COMPILE-FILE will return T as failurep. > > -T. > > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart > your > developing skills, take BlackBerry mobile applications to market and > stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Sbcl-devel mailing list > Sbc...@li... > https://lists.sourceforge.net/lists/listinfo/sbcl-devel -- Pascal Costanza, mailto:pc...@p-..., http://p-cos.net Vrije Universiteit Brussel Software Languages Lab Pleinlaan 2, B-1050 Brussel, Belgium |