Subject: Re: CLOS block compilation type checking
From: (Rob Warnock)
Date: Wed, 04 May 2005 05:16:00 -0500
Newsgroups: comp.lang.lisp
Message-ID: <>
Christopher C. Stacy <> wrote:
| (Rob Warnock) writes:
| > Bulent Murtezaoglu  <> 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 Warnock			<>
627 26th Avenue			<URL:>
San Mateo, CA 94403		(650)572-2607