how to add new stuff to Maxima



--- Richard Fateman <fateman@cs.berkeley.edu> wrote:
> I have a draft of paper posted in
> http://www.cs.berkeley.edu/~fateman/papers/addformat.pdf
> 
> which may be of interest to people who have sought information
> on what goes on inside macsyma/ maxima.  I am sure it
> is lacking in many respects, and I invite comments
> to try to improve it.

An interesting read.  I fear I don't know enough to make any
intelligent comments, but it did start me thinking about a couple of
points I would appreciate clarification on.

1)  The implication seems to be that any added functionality one wants
to put into Maxima requires that, for full integration, the
implications of each relevant Maxima command on the new functionality
must be considered and if necessary other extensions made.  (Indeed,
apparently a fair bit of that sort of work is lacking even in features
already present in the system.) I guess in some sense this is natural,
since the mathematics themselves often seem to exhibit subtle issues
even in "basic" examples, but it bodes ill for development.

2)  To my mind the task of trying to add features and consider all
relevant cases "by the seat of one's pants," so to speak, is guaranteed
to produce unexpected issues, obscure bugs, and a headache. Is there
some system, ANY system, by which we can intelligently add features to
Maxima in such a way that we know what areas have been addressed and
what areas still need to be addressed?  If I understand correctly the
only thing which would really serve is a database where the interaction
of a new function/datatype with every function/datatype in the system
is described as either a) known and handled, with a description of the
behavior implimented b) deemed obviously irrelevant or c)
indeterminant.  For example, such a system would document what the
subst command would do with each data type on the system, and a new
datatype being added to the database would "flag" a new issue - namely
how subst should interact with it.  (It would "flag" a lot of others
too - this is one example.) This would be huge, but probably there
would be practical limits beyond which we wouldn't need to go.  I'm
hoping there exists SOME level at which this can be modularized, but I
don't know.  As a matter of development methodology there should really
be SOME systematic way we know we are getting the job done "right".  Is
this possible, or am I misunderstanding the issue?


		
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail