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/
