Christophe Rhodes <[EMAIL PROTECTED]> writes:
> Bob Coyne <[EMAIL PROTECTED]> writes:
> 
> > I think it should say "Note: FOO declared special" rather
> > than "Warning:..."
> >
> > The same information is conveyed with much less of a chance
> > of alarming the newbie user.
> 
> The newbie user _should be alarmed_, because the newbie has just
> invoked undefined behaviour.

Yes, and in fact that is where *I* see the problem: newbies do not get
alarmed enough, essentially because it is hard to get alarmed at a
warning you do not understand, and which doesn't bring any obvious
harm for a really long time. And after all, if you are just fooling
around with some examples from Graham's ACL book, you won't think that
they are wrong.  Maybe the message should read: "Warning: FOO declared
special. Please read FAQ question 2 to avoid impending doom."

When newbies really get alarmed is when prefectly good code suddenly
starts to misbehave from one compilation to the next, and miraculosly
recovers if you restart your image.

OTOH, since this is undefined behaviour, one could choose a behaviour
which does not have the potential of ruining your lisping
experience. If I had a vote on the matter, I would say the default for
autodeclare should be NIL.

>   [EMAIL PROTECTED]:/tmp$ cat > foo.c
>   void main () { }
>   [EMAIL PROTECTED]:/tmp$ gcc foo.c
>   foo.c: In function `main':
>   foo.c:1: warning: return type of `main' is not `int'
> 
> I hope you're not about to argue that that should read foo.c:1:
> note: return type of `main' is not `int', but don't worry about it
> too much, you poor dear

:-)

Regards,
        Mario.


Reply via email to