Protecting variables



--- Barton Willis <willisb@unk.edu> wrote:
> 
[snip]
> 
> Changes:
> 
> (1) A user can only unprotect a symbol that has the 'user-protected
> property; a user is no longer able to unprotect members infolists.

Very nice :-).

> (2) Protect and unprotect no longer evaluate their arguments.

That should be a usability help.

> (3) Protect and unprotect now return done instead of true. I think
> this is better.

Logically it does make more sense as a message to return - what is the
distinction between DONE and TRUE in Maxima?

> Bugs:
> 
> (1) Protection only protects against assignment; a user can make
> assumptions on a protected symbol.

Would we want to protect against assumptions?

> (2) Protect is global -- I think fixing this would require lots of
> changes to Maxima.

Yep, that's my guess.  We should probably plan that discussion for one
of the 5.9.x releases.  I'm guessing that might impact a lot of
development down the line.

> Other:
> 
> I'm undecided whether including this protect / unprotect scheme
> would be good or bad for Maxima.

What negative effects do you forsee?

> Barton
> 
> PS Reading the mset source I learned of the undocumented
> option variable SUBSCRMAP
> [snip]
> This is very odd -- the assignment mapping uses outermap1.
> Macsyma eliminated  subscrmap and made [a,b] : [x,y] equivalent
>  to a : x, b : y.

a : x, b : y is what I would have expected - any idea why they have the
other behavior available?


__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free web site building tool. Try it!
http://webhosting.yahoo.com/ps/sb/