Hi there, I'm trying to install the results of months of cooperative hacking, your all new nhc98-1.04, on cygwin (Windows/NT4). Apart from a missing "include <errno.h>" in cIOExtras.c, there seems to be a problem with suffixes, or a missing file, which has stopped me from finishing the installation. [nhc98-1.04, cygwin, NT4; configure +docs; make all] Errors encountered so far: -- [missing in nhc98-1.04\src\runtime\Builtin\cIOExtras.c] #include <errno.h> -- make[3]: Entering directory `/tmp/nhc98-1.04/src/prelude/Numeric' /tmp/nhc98-1.04/script/nhc98 -cpp -T -dbgtrans -trusted -P/tmp/nhc98-1.04/in clude -DTRACING -c +CTS -part -redefine -CTS -P../Char -P../PreludeText -P.. /PreludeList -P../Ratio -o /dev/null LexDigits.hs I/O error (user-defined), call to function `userError': Can't open any of: ./IsDigit.T.hi /tmp/nhc98-1.04/include/IsDigit.T.hi ../Char/IsDigit.T.hi ../PreludeText/IsDigit.T.hi ../PreludeList/IsDigit.T.hi ../Ratio/IsDigit.T.hi when trying to read IsDigit. make[3]: *** [../Numeric/LexDigits.T.hi] Error 1 make[3]: Leaving directory `/tmp/nhc98-1.04/src/prelude/Numeric' make[2]: *** [../Numeric/LexDigits.T.hi] Error 2 make[2]: Leaving directory `/tmp/nhc98-1.04/src/prelude/Char' make[1]: *** [Char.subdir] Error 2 make[1]: Leaving directory `/tmp/nhc98-1.04/src/prelude' make: *** [targets/ix86-CYGWIN_NT-4.0/traceprelude] Error 2 [../Char/IsDigit.t.hi exists, IsDigit.T.hi doesn't; from the tar-file contents, it seems that *.t.hi are generated, whereas *.T.hi come with the sources?] Independent of the actual error (or perhaps not independent?), there is a problem lurking here. You now rely on being able to distinguish between *T* and *t* (tracing and timing), right? Unfortunately, that might not work on cygwin/windows boxes. From the cygwin FAQ: (http://sources.redhat.com/cygwin/faq/faq_4.html#SEC49) Are mixed-case filenames possible with Cygwin? Several Unix programs expect to be able to use to filenames spelled the same way, but with different case. A prime example of this is perl's configuration script, which wants Makefile and makefile. WIN32 can't tell the difference between files with just different case, so the configuration fails. In releases prior to beta 16, mount had a special mixed case option which renamed files in such a way as to allow mixed case filenames. We chose to remove the support when we rewrote the path handling code for beta 16. The standard Windows apps -- explorer.exe, cmd.exe/command.com, etc. -- do not distinguish filenames that differed only in case, resulting in some (very) undesirable behavior. Sergey Okhapkin had maintained a mixed-case patch ('coolview') until about B20.1, but this has not been updated to recent versions of Cygwin. In case you can't imagine this kind of silly behaviour, and just to confirm that I'm not hallucinating and that the FAQ is not simply out of date, here is an example (using cygwin's bash), showing that, while some tools manage to distinguish case, this can't be relied on: touch t.hi T.hi ls t.hi rm T.hi ls touch T.hi t.hi ls T.hi ls | fgrep 't.hi' ls | fgrep 'T.hi' T.hi rm t.hi ls (for more info on this nonsense, see a posting on the cygwin mailing list, http://cygwin.com/ml/cygwin/2000-07/msg00590.html) I'm not sure whether this has anything to do with the second bug, but it is a trap I would like to avoid. I would simply rename one of the suffixes, and try again, but the mapping of features to suffixes seems to be hardwired and distributed all over the place (I couldn't find a variable TRACINGSUFFIX=T), and I don't want to try and search for all uses of t, T, tT, and so on. Unless you can think of any good reason not to, could you please change your suffix scheme back to something that will also work on Windows-inhibited cygwin? Thanks, Claus