help-smalltalk
[Top][All Lists]
Advanced

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

RE: [Help-smalltalk] Building GNU Smalltalk-2.3.5 with MinGW


From: Akeroyd, FA \(Freddie\)
Subject: RE: [Help-smalltalk] Building GNU Smalltalk-2.3.5 with MinGW
Date: Mon, 18 Jun 2007 15:57:08 +0100

> The attached patch, on top of 2.3.5, is my take on this.  It fixes all

> path issues, so the only things left should be:

I've rebuilt my MinGW version using the supplied patches and the program
compiles and creates an image OK. There are, however, two test failures
on a make check (quit.st and fileext.st). The quit test is probably to
do with buffer flushing at program exit and I will look at that; the
details of the filext failure are:

18. testsuite.at:44: testing ...
./testsuite.at:44: cd $abs_srcdir && $GST -r fileext.st 2>&1
--- expout      Mon Jun 18 13:54:50 2007
+++ tests/testsuite.dir/at-stdout       Mon Jun 18 13:54:50 2007
@@ -11,18 +11,18 @@
 true
 true
 true
+false
 true
 true
 true
 true
+false
 true
 true
 true
 true
 true
-true
-true
-true
+false
 true
 true
 true
18. testsuite.at:44: 18. fileext.st (testsuite.at:44): FAILED
(testsuite.at:44)

Also if I try to rebuild the documentation with

touch kernel/File.st
make

It fails with the following error:

Making all in doc
make[2]: Entering directory
`/home/faa59/Smalltalk_gnu/smalltalk-2.3.5/doc'
rm -f ./classes.texi
builddir=`pwd`; gst=$builddir/../gst; gst_im=$builddir/../gst.im; \
cd . && \
  $gst -I $gst_im -f ../scripts/GenBaseDoc.st \
  Smalltalk SystemExceptions NetClients VFS
writing documentation for AbstractNamespace
Object: FileStream error: could not open
C:\msys\1.0\home\faa59\Smalltalk_gnu\smalltalk-2.3.5/C:/msys/1.0/home/fa
a59/Smalltalk_gnu/smalltalk-2.3.5/kernel/AbstNamespc.st
SystemExceptions.FileError(Exception)>>#signal
SystemExceptions.FileError class(Exception class)>>#signal:
[] in FileStream class(FileDescriptor class)>>#open:mode:
[] in FileStream class(FileDescriptor class)>>#fopen:mode:ifFail:
FileStream(FileDescriptor)>>#fileOp:with:with:ifFail:
FileStream class(FileDescriptor class)>>#fopen:mode:ifFail:
VFS.RealFileHandler>>#open:mode:ifFail:
FileStream class(FileDescriptor class)>>#open:mode:
FileSegment>>#withFileDo:
FileSegment>>#asString
MethodInfo>>#sourceString
 

> Could you check instead if "sed b < foo > bar" has the same effect as
"unix2dos"?

Unfortunately not - no \r characters are added to the lines and so the
tests still fail. However the Windows putchar() function intercepts a
bare \n and substitutes \r\n so the following piece of C code will do
the conversion on windows and leave things unchanged on unix:

#include <stdio.h>
int main(int argc, char* argv[])
{
    int c;
    while( (c = getchar()) != EOF )
    {
        putchar(c);
    }
    return 0;
}

> modifying _gst_set_file_access_times to use the appropriate Windows
API function

Windows provides an implementation of the POSIX utime() function which
should do the job for us. I notice the current code uses utimes() rather
than utime() - is utimes() generally more widely available or is this
usage purely for historical reasons?

Freddie





reply via email to

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