Beginnings of package ideas on wiki



As discussed earlier, I have uploaded my latest thoughts on organizing
a package effort to the wiki, at the address below:

http://maxima.sourceforge.net/wiki/index.php/Maxima%20package%20system

I'm still not completely sure this is workable, but do-symbols and
export do allow a normal Maxima process to function in a non-MAXIMA
package:

Maxima 5.9.1.1cvs http://maxima.sourceforge.net
Using Lisp CMU Common Lisp 19a
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
This is a development version of Maxima. The function bug_report()
provides bug reporting information.
(%i1) to_lisp();

Type (to-maxima) to restart, ($quit) to quit Maxima.

MAXIMA> (load "stepstoadefpackagebasedmaxima.txt") 
T
MAXIMA> (in-package :plotting)
#
PLOTTING> (to-maxima)
Returning to Maxima
(%o1)                                true
(%i2) integrate(1/(1+x^2),x);
(%o2)                               atan(x)
(%i3) to_lisp();

Type (to-maxima) to restart, ($quit) to quit Maxima.

PLOTTING> 

Even in this environment it will not be simple to figure out all the
inter-related parts, but at least there is a better chance of moving
pieces around incrementally, and keeping Maxima working as it gets
done.  Basically the idea is "anything not already put into a package
is available everywhere - as things are put into packages on an
individual basis, issues are handled on a case by case basis."  For
example, if I move an integration function to integrate, and something
breaks, it is clearly because something in a package depended on the no
longer globally available integration function.  (Using grep to check
for obvious uses of the code you are moving is a good idea.)  Unit
testing would clearly be a major plus in this process, and I've been
looking at various options to start implimenting such a system.  Macros
are likely to make life miserable, as they will contain many of the
less obvious trickery, but eventually I think it can be mucked through.

Cheers,
CY

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com