"Attila Lendvai" <attila.lendvai@...> writes:
> some generic method related macros in PCL are emitting code with
> .ARG42. symbols that are not declared ignorable but aren't always
Can you say which and under what circumstances, or else provide some
kind of test case that I can run to reproduce the problem?
> but if someone could suggest a good place for utils like i've pasted
> below, or tells me their equivalents in sbcl, then i'll send a patch
> myself eventually.
It doesn't seem terribly likely to me that applying ignorable
declarations blindly based on parsing the lambda list is the right
answer: instead, the logic in the code generation should be examined
to declare particular arguments ignore if we can tell that they will
never be used, and only fall back to ignorable if there is a doubt.
That said, there certainly is work to be done in SBCL in parsing
lambda lists: there are probably many different lambda list parsers
currently, for method combinations, specialized lists and so on; a
brief survey using apropos on "LAMBDA-LIST" suggests looking at
(in an ideal world, all the above eventually end up calling the most
general version, probably SB-INT:PARSE-LAMBDA-LIST-LIKE-THING; I
haven't looked at the code to see how far we are from that ideal. I
have found the method combination version, which isn't in the above
list: it's called SB-PCL::DEAL-WITH-ARGS-OPTION, and it comes with
scary comments and a FIXME already.)