|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
Warning for arity mismatchesHello!
There’s a new warning available, ‘-Warity-mismatch’, which warns about wrong arguments counts, etc. 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.) 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? 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? Thanks, Ludo’. |
|
|
Re: Warning for arity mismatchesHi :)
On Sat 07 Nov 2009 19:38, ludo@... (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/ |
|
|
Re: Warning for arity mismatchesHey,
Andy Wingo <wingo@...> writes: > On Sat 07 Nov 2009 19:38, ludo@... (Ludovic Courtès) writes: [...] >> 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? It now supports keyword arguments for good, so forget about it. :-) >> 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. Right, why not. With backwards compatibility in mind, it seems to me like a reasonable approach Thanks, Ludo’. |
|
|
Re: Warning for arity mismatchesludo@... (Ludovic Courtès) writes:
>> 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. > > Right, why not. With backwards compatibility in mind, it seems to me > like a reasonable approach I agree, this is a nice model of operation. Neil |
| Free embeddable forum powered by Nabble | Forum Help |