xmaxima situation summary



Here is a brief summary of the xmaxima situation. Anyone interested in
looking at the problems should either check out the cvs version of
maxima or download the most recent snapshot available from
<http://sourceforge.net/projects/maxima>;. The guts of the xmaxima source
are in the subdirectory interfaces/xmaxima/Tkmaxima.

(These notes are disjoint and incomplete. I apologize. If you are
interested in helping and something is not clear here, please ask!)

1) As of 5.9.0, xmaxima worked with maxima, but:
	a) The connection to the various maxima directory variables was very
complicated and undocumented.
	b) The windows version was hardcoded to talk to gcl maxima through
gcl's implementation-specific command-line arguments.
	c) The unix version invoked maxima with the arguments 
-p $lisp -r ":lisp (progn (user::setup PORT)(values))", where PORT is
the socket port number substituted in by xmaxima and $lisp was the full
path to server.lisp, which was in the xmaxima install directory. (PORT
is usually 4008.)

2) For 5.9.1 (and beyond) I've made several changes to reduce the number
of connections between maxima, xmaxima and platform. In principle,
everything should be much simpler now, but I am having trouble debugging
things in practice.
	a) maxima can be started in server mode directly:
		maxima -s 4008
	is the equivalent of the complicated mess in (1c).
	
	b) maxima works the same way on windows as it does on unix.
	There is now a maxima.bat script that allows maxima to be
	started with the same command-line arguments as on unix.
		maxima -s 4008
	should be enough to start the server.
	
	c) The various maxima directory variables, which have changed,
	are now documented in doc/implementation/dir_vars.txt.

	d) maxima can now be queried to show its directory variables.
	This means that other programs don't need to duplicate the
	directory selection logic -- they can just execute
		maxima -d
	lists all the directories and their values.

The only xmaxima changes I've made are in Paths.tcl. You can view the
history of changes on the web at
<http://cvs.sourceforge.net/viewcvs.py/maxima/maxima/>;, particularly
<http://cvs.sourceforge.net/viewcvs.py/maxima/maxima/interfaces/xmaxima/Tkmaxima/>;.

Miscellaneous notes:

I have never been able to get clisp to work with xmaxima on windows. It
works fine under linux. I think part of the problem is the way errors
are redirected to the socket in src/server.lisp -- if there is an error
with the socket, the error message gets sent to the socket, which
generates an error message, which gets sent to the socket, which ....

Running tests in xmaxima requires knowing the location of the test
directory. I'm going to make the test suite an internal maxima command,
so that problem will disappear.

--Jim