In article <slrniaa0gi.6t7.usenet-nos...@guild.seebs.net>, Seebs <usenet-nos...@seebs.net> wrote:
> On 2010-09-30, RG <rnospa...@flownet.com> wrote: > > That gives (what I would consider to be) false positives, e.g.: > > > [...@mighty:~]$ cat foo.c > > > void foo(long x) {} > > > int main() { foo(1); } > > [...@mighty:~]$ gcc -Wconversion foo.c > > foo.c: In function ???main???: > > foo.c:4: warning: passing argument 1 of ???foo??? with different width due > > to prototype > > But it's *not* a false positive. The compiler is not claiming that the > conversion couldn't be done -- it's just telling you that there is a > change of type going on. Again, you can't have it both ways. Either a warning is a "compiler error" according to the claim at issue (see below) or it is not. If it is, then this is a false positive. If it is not, then my previous example refutes the claim. > If you don't want that message, it is certainly possible to write code > which won't get it, and which will reliably work everywhere. Of course it's possible. It's *possible*, with enough effort, to write correct code in any programming language. What does that have to do with anything? > > So you have to choose your compiler > > (and flags) first, and then I get to construct my example. If my > > example has *either* an error that the compiler doesn't catch *or* a > > non-error that it does catch then I win. > > Those goal posts are sorta red shifted at this point. At this point I would like to quote a wise man who once said: > May I suggest that, if you don't want to use words and terminology > precisely, perhaps computer programming is not for you? Red shifted? > You're redefining "error" and "non-error" so as to demand that a statically > typed language offer you the same semantics of errors and non-errors that > dynamically typed languages have. That's cheating, though. The claim > is about C, not about what people who are expecting a dynamically typed > language would like C to be like. The claim is: http://groups.google.com/group/comp.lang.lisp/msg/431925448da59481 Message-ID: <0497e39d-6bd1-429d-a86f-f4c89babe...@u31g2000pru.googlegroups.com> From: TheFlyingDutchman <zzbba...@aol.com> Newsgroups: comp.lang.lisp [...] in C I can have a function maximum(int a, int b) that will always work. Never blow up, and never give an invalid answer. If someone tries to call it incorrectly it is a compile error. [...] The truth of this claim hinges on the definitions of "work", "never blow up", "invalid", "call incorrectly" and "compile error." Define these however you like, the result will be that the claim is either false or vacuous. rg -- http://mail.python.org/mailman/listinfo/python-list