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. Raymond Toy wrote: > >>>>> "Mario" == Mario Mommer <[EMAIL PROTECTED]> writes: > > Mario> * (setf x 1) Defines a special out of the box. No newbie knows what a > Mario> special is, and few can understand it before they have some > Mario> experience. And it bites. It bites HARD and it looks like a bug in > Mario> cmucl when it does so. > > Mario> having ext:*top-level-auto-declare* default to nil would still give > Mario> a warning without giving newbies hell. > > If you're a newbie, I think this is even worse: > > * (setf zot 42) > ; > > ; Warning: This variable is undefined: > ; ZOT > ; > 42 > * zot > 42 > * (describe 'zot) > ZOT is an internal symbol in the COMMON-LISP-USER package. > It is a undefined variable; its value is 42. > > How good is that to a newbie? It's says it's undefined, but I just > defined it! And it prints out the value I gave! Other undefined vars > don't do that! But describe says it's undefined! What gives? > > So, I think the default value is the best. At least you're warned. > > However, if someone wants to make it so these top-level variables > aren't special, and has a patch, that might be useful. > > Ray
