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