Hi :)

On Sat 07 Nov 2009 19:38, [email protected] (Ludovic Courtès) writes:

> There’s a new warning available, ‘-Warity-mismatch’, which warns about
> wrong arguments counts, etc.

Cool :)

> It currently lacks support for keyword
> arguments, which is why it’s not ready yet to compile Guile itself (it
> produces erroneous warnings for procedures with keyword arguments.)

Why doesn't it just not warn in that case?

> I think some of these warnings should really be errors, when there’s
> undoubtedly a wrong number of arguments, as in:
>
>   (let ((f (lambda (x) x)))
>     (f 1 2 3))
>
> What do you think?

I think there should be a -Werror compilation argument, but that we
should, by default, compile all expressions. It could very well be that
the user wanted to cause an exception to be raised.

> Actually, the tree-il->glil pass surely does a significant part of what
> ‘arity-mismatch-analysis’ does, and I wonder whether/how this could be
> factorized.  For example, tree-il->glil must already diagnose the
> problem in the example above.  Andy?

See analyze.scm:173. I don't know if I'd bother factorizing anything
more than (args-compatible? proc args).

Andy
-- 
http://wingolog.org/


Reply via email to