
On Thu, Oct 28, 2004 at 05:51:18PM -0700, Fergus Henderson wrote:
We ran into a related problem recently. I think the problem may only show up on Windows, not on Linux. The problem is that when a loop occurs, ghc's garbage collection detects that the standard I/O handles for stdin/stdout/stderr can no longer be referenced and finalizes them, *before* detecting the loop and throwing an exception. Subsequent code may then attempt to use these already-finalized standard I/O handles. A possible work-around is to create stable pointers to those handles. But I'm not sure whether this is the same problem that you are experiencing.
I've seen a couple of oddities with the Windows Nov 2003 hugs build some students have run into on EfNet #haskell but the users were all too naive to get adequate descriptions out of. The first of these had to do with qualified names, the second had to do with some explicitly-typed top-level expressions. I don't have access to Windows systems to try to reproduce these on my own. The "issues" weren't crashes, they were merely behavior differing from ghci et al in the former case and with the UNIX builds in the latter. I don't have adequate specifics myself, so if someone could chase these down for me, I'd be much obliged. -- wli