Maxima 5.13.0 release candidate 1



On 8/6/07, Vadim V. Zhytnikov <vvzhy at mail.ru> wrote:

> I'm really puzzled.  The only change I introduced in 5.12.0a compared
> to 5.12.0 is extra path to cc1.exe directory in maxima.bat.
> And this change apparently fixed compilation problem.
> And so it remains in 5.12.99rc1.  Take a look at maxima.bat file.

Vadim, I looked at the 5.12.99rc1 + Windows Vista problem again.
To recap: Maxima works OK except that some tests fail, namely
the ones in which the Maxima function compile is called.

It appears the immediate problem is that GCL calls GCC without
the appropriate -I command lines options to tell GCC the location
of the C header files. :lisp (trace si::system) shows this.
In 5.12.0a + Vista, GCC is called with three -I options,
one for Maxima-5.12.0a/include, one for Maxima-5.12.0a/lib/mingw32
or something like that, and one for /gcl/something/unixport/../h.
This last -I option is constructed from SI::*SYSTEM-DIRECTORY*;
the directory /gcl/... doesn't actually exist.

In 5.12.99rc1, GCC is called only with the invalid -Ic:/gcl/... option.
So GCC fails due to lack of header file. I can cause it to work
by assigning a string containing the two valid header file locations
to SI::*SYSTEM-DIRECTORY*. So that's good news.
Assigning to SI::*SYSTEM-DIRECTORY* doesn't seem to break
anything else; not surprising since it was invalid anyway.

I looked at the source code for the GCL COMPILE function;
the relevant bit is in cmpnew/gcl_cmpmain.lsp iirc.
I don't see any variables except SI::*SYSTEM-DIRECTORY* being
used to construct the GCC command line. Maybe that bit has
changed recently? I didn't investigate that.

Dunno where to go from here.

best

Robert