
I have attached a patch that allows "make check" run more or less successfully on Windows. The patch converts Windows-style newlines to Unix-style newlines from the output of the test, so that when the actual output is compared to the expected output, the newline differences don't set off false positives. It also fixes a couple obvious problems with the tests to make them work on MSYS. I have also attached the results of "make check." I went through all the failures and gave some notes below. ./../src/hugs +q -w -pHugs: static/mod154.hs < nul This seems to be a known bug in Hugs since mod154.hs says "Hugs gets this wrong." ./../src/hugs +q -w -pHugs: rts/read.hs < rts/read.input The exponents on floating point numbers include an extra leading "0": "-3.10862446895044e-015" instead of "-3.10862446895044e-15" and "2.384186e-007" instead of "2.384186e-07". GHCi strips all the leading zeros from the exponents in both cases. So, there is a bug in the tests (doesn't properly take leading zeros into account in exponents) and/or Hugs (if the Haskell spec. requires leading zeros to be stripped like GHCi does). ./../src/hugs +q -w -pHugs: rts/arith.hs < rts/arith.input There is a difference "-0" vs. "0" that seems not totally unreasonable. The other difference "inf" vs. "1.#INF" seems like a bug in Hugs. ./../src/hugs +q -w -pHugs: ffi/Sin.hs < ffi/Sin.input The unexpected signal is troubling, but I don't know what the problem is. ./../src/hugs +q -w -pHugs: ffi/FileIO.hs < ffi/FileIO.input The unexpected error seems to be caused by the fact that "/tmp/test_write" is being opened, when this file doesn't exist normally on Windows. This is a bug in the test. ./../src/hugs +q -w -pHugs: ffi/Sparc.hs < ffi/Sparc.input I have no idea what is wrong. ./../src/ffihugs +q -w -pHugs: ffi/Callback.hs ffi/callback.c < nul This test assumes a case-sensitive file system that can distinguish between "Callback.c" and "callback.c." This test can be fixed by renaming "Callback.hs" to "CallbackTest.hs" and renaming callback.c to callback_c.c. Patch included, but you have to do the renaming of the file yourself. However, after getting it to build successfully, it still fails with output "unexpected signal" and exit code 1, and I have no idea why. ./../src/hugs +q -w -pHugs: System libs/system1.hs < libs/system1.input If I run this test directly it gives the expected output. But, inside of "make check" it fails because MSYS's SHELL is "sh.exe" instead of "sh." Patch included. ./../src/hugs +q -w -pHugs: Directory libs/dirTest.hs < libs/dirTest.input This test fails, but I think it is simply because NTFS doesn't support the same permission combinations as Unix/Linux. Either a Windows-specifc version should be written, or the test should be skipped on Windows.