It would be useful to be able to COMPLETELY clear Maxima back to initial
conditions. kill(all); and reset(); help a lot if you're doing casual
calculations, but if you want things completely cleared out, as far as I
can tell the only way to do this reliably is to quit and re-start maxima.
It could be useful instead to have a function "restart();" which just
calls "exec" on the maxima executable. I see that in Linux at least the
maxima executable is actually a shell script that calls exec on the
appropriate lisp runtime so perhaps it is a bit tricky to do this. SBCL
certainly supports exec if I remember correctly, I'm not sure if GCL
does or any of the other Lisps Maxima supports. In any case, the
"restart" function could call exec when supported, and throw an error
with a message like "this lisp does not provide support for the restart
function, please quit maxima manually and start it again" otherwise.
What do you all think? Is this worthwhile, or just a potential
maintenance headache?