Windows issues (was RE: [Maxima] New release candidate with windows installer available)



Several windows issues have been identified. I need more help to fix
some of them:

1) Some numerical tests fail on amd processors. I tried to configure gcl
for a lowest-common-denominator cpu, but either I misunderstood the
directions I got, or the directions were wrong. Either way, I think I
have fixed the problem, but I have no way to test it. (See below.)

2) Not enough include files were included in the installer. I think I
have fixed this problem by including the list provided by David. (Thank
you, David!)


I have a hacked-up installer with fixes (1) and (2) in my private web
area, <http://www.wideopenwest.com/~jfamundson/maxima-5.9.0.rc4.exe>;.
This is not an officially released file. I would, however, appreciate
knowing if it solves problems.


3) Even with the fix in (2), compiles fail on Windows 98. After a long
session of trials and errors, I think I have determined that it is
because the element I append to the PATH becomes
	C:/PROGRAM FILES/MAXIMA-5.9.0.RC4\bin\
where it has to be
	C:\Program Files\Maxima-5.9.0.rc4\bin
or
	C:\PROGRAM FILES\MAXIMA-5.9.0.RC4\BIN
for the compile to work. This is a completely empirical statement -- I
don't understand the principles involved. The tcl code in Paths.tcl in
question is

    # jfa: extend path so that gcl can see gcc in windows package
    # I don't know that this is the best place for this
    if {$tcl_platform(platform) == "windows"} {
	set env(PATH) "$maxima_priv(maxima_prefix)\\bin\\;$env(PATH)"
    }

If someone can suggest a change that will work both on Windows 98 and
later versions of Windows, I would be very grateful. I need help with
both the Windows issues and the TCL syntax.

--Jim

On Sat, 2003-02-01 at 06:34, Billinghurst, David (CRTS) wrote:
> I hate replying to my own mail.  Ignore the fix in it.   As is often the case,
> I found the real problem just after I posted the wrong fix.  
> 
> The problem is that a few of the gcc header files are missing, so that
> the compile test in rtest15.mac aborts and doesn't clean up after itself.
> 
> The fix is to copy the following gcc files:
>  lib/gcc-lib/mingw32/3.2/include/*.h (but not the subdirectories)
>  include/math.h
>  include/unistd.h
>  include/io.h
>  include/process.h
>  include/sys/*.h
> 
> then confirm that the compiler works
> 
> (C1) f(x):=x+2;
> (D1) 				 f(x) := x + 2
> (C2) compile(f);
> Compiling gazonk1.lsp.
> End of Pass 1.  
> End of Pass 2.  
> OPTIMIZE levels: Safety=2, Space=2, Speed=2
> Finished compiling gazonk1.lsp.
> (D2) 				      [f]
> (C3) 
> 
> -----Original Message-----
> From: CRTS 
> Sent: Saturday, 1 February 2003 10:59 PM
> To: 'Nikolaos I. Ioakimidis'; James Amundson
> Cc: maxima mailing list
> Subject: RE: [Maxima] New release candidate with windows installer available
> 
> 
> > -----Original Message-----
> > From: Nikolaos I. Ioakimidis [mailto:ioakimidis at otenet]
> > Sent: Saturday, 1 February 2003 3:15 AM
> > To: James Amundson
> > Cc: maxima mailing list; Nikolaos I. Ioakimidis
> > Subject: Re: [Maxima] New release candidate with windows installer available
> 
> 
> [...]
> 
> > (ii) In the tests of Maxima there has been an error in rtestode.mac
> > in Problem 43 there in the command
> >
> > DESOLVE([EQN1, EQN2], [f(x), G(x)])
> >
> > The error has been that "x+2 contains more than one independent
> > variable. . . . ". Perhaps this Problem can be omitted or corrected
> > before the final release of 5.9.0. (I do not know whether this error
> > is simply due to my own previous commands.)
> 
> 
> I see this too, on win2k.  It is due to a an interaction with the compile
> test in rtest15.mac, and the fact that kill(all) doesn't.  The following
> patch to rename f to something more obscure is another work around.
> 
> $ diff -u rtest15.mac.orig rtest15.mac
> --- rtest15.mac.orig    2003-02-01 22:48:46.000000000 +1100
> +++ rtest15.mac 2003-02-01 22:56:43.000000000 +1100
> @@ -94,21 +94,22 @@
>  sqrt(3)*sin(2*a)+cos(2*a)-1;
> 
>  /* compile() will fail with gcl if gcc not installed */
> -f(x):=x+2;
> -f(x):=x+2;
> -f(2);
> +fcompile(x):=x+2;
> +fcompile(x):=x+2;
> +fcompile(2);
>  4;
> -compile(f);
> -[f];
> -f(2);
> +compile(fcompile);
> +[fcompile];
> +fcompile(2);
>  4;
> -kill(f);
> +kill(fcompile);
>  done;
>  /* This should kill f, but doesn't which upsets subsequent tests
> -   Redefining it then killing it does the right thing */
> -f(x):=x+3;
> -f(x):=x+3;
> -kill(f);
> +   Redefining it then killing it does the right thing.
> +   Sometimes even this is not enough */
> +fcompile(x):=x+3;
> +fcompile(x):=x+3;
> +kill(fcompile);
>  done;
> 
>  /* Trignometric and hyperbolic functions of complex arguments */
-- 
James Amundson <amundson@fnal.gov>