more mset hackery, matrix assignments..



hello,

concerning the defstruct stuff & mset revision, i have done
some hacking on defstruct.lisp, visible here:
http://cvs.sf.net/viewcvs.py/maxima/maxima/share/contrib/
see also rtestdefstruct.mac (test file) in the same location.

here are the changes i made wrt prof fateman's most recent version:

(0) cut matrix assignment code from previous rev 
(but kept parallel multiple assignment)
(1) $NEW barfs if #arguments != 1, or argument has no defstruct, 
or wrong number of initializers.
(2) $DEFSTRUCT allows 1 or more arguments, returns a list of defstructs.
(3) use $PUT and $GET to maintain defstruct properties
    (renamed to $DEFSTRUCT_DEFAULT and $DEFSTRUCT_TEMPLATE).
    This makes defstruct properties visible to user via get and propvars.
    Also, this makes `kill' kill defstructs.

defstruct and parallel assignment seem to work as intended
(at least as assessed by rtestdefstruct.mac).

there were some other ideas about defstruct/mset kicked
around, maybe we'll get to those. as it stands it looks to me
like defstruct/mset is useful and workable. 

robert