Subject: Re: CLOS block compilation type checking
From: rpw3@rpw3.org (Rob Warnock)
Date: Wed, 04 May 2005 05:16:00 -0500
Newsgroups: comp.lang.lisp
Message-ID: <zZidndYAK7p9PeXfRVn-hg@speakeasy.net>
Christopher C. Stacy <cstacy@news.dtpq.com> wrote:
+---------------
| rpw3@rpw3.org (Rob Warnock) writes:
| > Bulent Murtezaoglu  <bm@acm.org> wrote:
| > |     RW> Or am I missing something obvious about your question?
| > | The same thing I am prolly.  Am I missing something about your answer?
| > And as far as your observation that "He wanted something to warn at
| > compile time anyway" goes... Oops. I missed that bit. Mea culpa.
| 
| Is it fairly clear what I am asking for, or is there still confusion?
+---------------

If by "required methods" you mean that a covering set of methods
has been defined for which a call of your generic functions will
never invoke NO-APPLICABLE-METHOD at run-time, then I suspect you're
asking for the impossible... in general, that is.

In certain limited domains you (or a "sufficiently-smart compiler")
might be able to prove that no possible input data- or control-flow
path would result in a call of one of your generic functions with
an argument list which would result in a call to NO-APPLICABLE-METHOD
[that is, an arg list for which COMPUTE-APPLICABLE-METHODS would
return NIL]. And wrapping your DEFGENERICs and DEFMETHODs in
"sufficiently-smart macros" might be one approach to that.

But in general [e.g., with data passed in from outside the compilation
block, or really convoluted code] that computation is equivalent to the
Halting Problem, and thus not likely to be provided by a vendor.  ;-}

+---------------
| (Apparently none of the existing compilers do what I am asking for.)
+---------------

Yeah, probably not.


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607