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