[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] 2.6.2.....

From: Mike Thomas
Subject: Re: [Gcl-devel] 2.6.2.....
Date: Sun, 06 Jun 2004 01:27:14 +1000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)

Hi all.

For the purposes of GCL 2.6.2 I think the Maxima "ignore-errors" bug is nailed.

Removing all but the directory separator character conversion in "fix_filename" in "o/mingwin.c" removes the problem. The removed portions are redundant cygwin path conversion which I should have flicked ages ago and device working directory code which seems to have a number of potentially catastrophic holes in it, and which is arguably not necessary anyway. Both of these removed parts copy strings around.

This function is called in a number of places, including the Lisp functions "namestring" and "truename" which are well used in Maxima's "defsystem.lisp".

Even though "fix_filename" does not allocate it's own memory, it does mess with Lisp string object storage and is not wrapped in "BEGIN/END_NO_INTERRUPT" which is probably how the randomisation occurs.

Vadim and Dave, could I please ask you if at all possible to replace the function "fix_filename" in "o/mingwin.c" with this one:

fix_filename( object pathname, char *filename )
    char *p = filename;
    while ( *p ) {
        if (*p=='\\') *p='/';

and let us know whether the ignore-errors bug goes away under conditions which would normally cause it for you?

For me those conditions are the use of top level gcc optimisation of less than "-O3" in "configure.in" (don't forget to "autoconf" after altering "configure.in") or just to configure a GCL build with "--enable-debug".

I've tested both former routes to disaster and found them fixed. Hopefully I will have similar success on my other build machine as will each of you on your's.

I can already feel the weight beginning to lift. Millions of Windows users the world over can rest easier tonight.

Good night

Mike Thomas.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]