mset error messages



On Mon, Mar 29, 2010 at 12:33 PM, Leo Butler <l.butler at ed.ac.uk> wrote:

> 1. Make each non-assignable system constant have an mset error message.
>
> 2. Clarify what these flags mean (e.g. why is all a system constant but
>   given the neverset property?) If two symbols share the same flag,
>   then they ought to be similar enough that a single error message
>   covers both cases.
>
> 3. Make flags like `neverset' user-accessible via declare.

There are various assignment-related mechanisms which are
probably just the result of code accretion over the decades.
My advice at this point, if you want to regularize and extend
the assignment stuff, is to tie the error message or other
special action to a symbol via the property list, instead of
hard-coding special cases into MSET. (There may already be
some such hard-coded cases; it's probably a good idea to
cut them out and move that stuff to the property list. I'm
pretty sure there are already assignment-related properties,
which could be used more widely. Without looking at this
too carefully, it seems unlikely that additional properties are
needed, just more careful use of existing ones.)

There is already some user-visible assignment stuff via define_variable.
I don't know if it's consistent with the built-in stuff.

FWIW

Robert Dodier