On 1/17/12, Raymond Toy <toy.raymond at gmail.com> wrote:
> Like emacs' lexical-let?
Maybe, I don't know anything about Emacs Lisp.
> Recall that maxima has the declare unspecial feature that makes symbols
> that were special no longer special. I think all the lisps we build with
> have this ability.
Nope. The default implementation of the unspecial stuff attempts
to remove the SPECIAL property from a symbol. Needless to say
that's nonportable, and more to the point, generally has no effect.
There are a couple of per-implementation versions of unspecial;
the GCL version reaches into generated C code to fiddle with
some bits. Yikes.
I'm inclined to nuke all the unspecial declarations. They can't be
necessary, since Maxima apparently works OK with implementations
for which unspecial is a no-op.
> But I'd rather make all special symbols follow the
> *convention*. Unfortunately, I don't think we can do this without a lot of
> manual work because we need to be able to tell if the variable is really
> the same as some other special variable in some other file.
I think it's worth the effort to paste the earmuffs onto all special
variables (except for Maxima global variables). It makes the code
clearer, reduces bugs, it's not too difficult, and it's the kind of
project that can be carried out a little bit at a time.
best
Robert Dodier