On Mon, 2004-03-15 at 21:50, Wolfgang Jenkner wrote:
> "Billinghurst, David (CALCRTS)" <david.billinghurst@comalco.riotinto.com.au> writes:
>
> > I had noted some time ago that kill(all) broke trigsimp(), but hadn't
> > followed up. The following Makefile fragment may be of interest, as
> > it shows some stuff that gets cleaned up by kill().
> Let me just recall that we have this problem because we dump some
> translated files (e.g., from trigonometry/trgsmp.mac) in the standard
> image. This puts some info on the lists which are members of
> $INFOLISTS. Maxima thinks that everything on this lists has been
> touched by the user in some way and therefore will scrub it. However,
> even a kill(all) will not completely break these translated and
> compiled files because of the
> $dont_kill_symbols_with_lisp_source_files switch (in suprv1.lisp),
> which is T by default and which preserves function cells containing a
> compiled function object. It does not preserve other user-defined
> properties of the corresponding symbols, though.
Yes. This is a good symmary.
> Now, trgsmp.mac has a number of lines like
>
> PUT('SIN,'COS,'COMPLEMENT_FUNCTION)$
>
> whose effect on the property lists of the trigonometric and hyperbolic
> functions doesn't survive a KILL(ALL). It does, however, survive a
> KILL(ALLBUT(PROPS)). So, my first suggestion would be to kill more
> selectively in the test suite.
That's probably a good idea for the time being.
> Obviously, we must also have a means to reset Maxima to the initial
> state.
Absolutely.
> This could be accomplished by doing a
> save("initial-save-maxima.LISP",all) after building the maxima image
> (we could even prefabricate this file) and writing a RESET() command
> (or a RESET argument to KILL) which does
>
> kill(all);
> load("initial-save-maxima.LISP");
That's one approach I have also considered. Somehow, it seems more
appealing to me to keep track of which properties are built in and which
belong in the user. Your solution may be simplest in the long run,
however.
I'd like to see a little more discussion on this point before we make
the change. Are there thoughts from others?
--Jim