>>>>> "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