Maxima 5.26.0 tagged in Git & posted to SF



On 12/19/11, Oliver Kullmann <O.Kullmann at swansea.ac.uk> wrote:

> Running tests in rtest8:

I think I observed this before & reported it to the ECL mailing list.
If it's the same error, there is a difference between compiled
and interpreted code in ECL. If you load these files from the
Maxima prompt:

:lisp (load "src/numerical/slatec/xermsg.lisp");
:lisp (load "src/numerical/slatec/xerprn.lisp");
:lisp (load "src/numerical/slatec/xersve.lisp");

and then re-run the test, does the problem go away?

> /* Print a string without line-breaks: */
> print_nlb(s) := block([old_linel : linel],
>   linel : slength(s) + 1,
>   print(s),
>   linel : old_linel)$

To preserve & restore a global variable, block([some_variable : foo], ....)
is enough (i.e. block restores the value, you don't have to).

Maybe it works better to call Lisp FORMAT ?
(i.e. ?format(s)) I haven't tried it.

> As it should be. However 5.26.0 introduces an extra empty line:
> ---
> (%i2) print_nlb("XXX");
>
> XXX

Well, without looking I don't know what might have changed.
Different Lisp implementations handle the "fresh line" business
differently so it's just a lot of trial & error to get it straight for
all implementations.

best

Robert Dodier