guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Warning for arity mismatches


From: Andy Wingo
Subject: Re: Warning for arity mismatches
Date: Sat, 07 Nov 2009 21:42:33 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux)

Hi :)

On Sat 07 Nov 2009 19:38, address@hidden (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

[Prev in Thread] Current Thread [Next in Thread]