HGL with GHC in Win32

C.Reinke C.Reinke@ukc.ac.uk
Fri, 21 Jun 2002 21:17:34 +0100


> Thanks for looking at this Claus.

no problem - I'm kind of nearby, and I'm not promising anything
(unless just looking at it is going to help;-).

> >   - the full-screen titlebar effect with the SOE variant suggests
> > some window-handling incompatibility, if it wasn't for Hugs and GHC
> > using the same graphics source code.. (is there a difference in the
> > win32 bindings for Hugs vs GHC?)
> 
> [This mail got rather long.  My best guess is that yield on GHC
> doesn't yield as thoroughly as on Hugs and that the Win32 library
> isn't being greencarded with the --safe-code flag.  (Either by itself
> would probably be fine, it's having both at once that is probably
> killing you.)]

According to the docs, yield does as yield should, and the unix
version (ghc/hgl/X) seems to work.. Btw, while looking at code with
scheduling-related issues in mind, other questions appeared to me:

  Shouldn't all those IORefs (e.g., for the list of windows) 
  be MVars in the GHC version?

  For a start, what about NoInline pragmas for global IORefs?

But, at least on unix, these don't seem to be the problem..

Unless there are any other suggestions, I could give the green card
--safe-code a try.  But why doesn't the green card input use %safecode
to eliminate that potential error source?-) And how would cross-ffi
garbage-collection issues affect window parameters at startup?

Anyway, is there a useable win32 green card input package hanging
around somewhere (the link to glasgow is dead it seems; CVS has
moved the gc-sources aside and has never been very modular - is
there a way for me to take the win32/gc-src/ directory from CVS and
make it, without having to prepare the various other parts of
fptools that fptools-Makefiles tend to depend on so merrily?-(. 

Alternatively, is anyone out there using ghc's win32 binding?
Presumably, that kind of problem would show up in other uses.

Claus

PS. Is there a way to get system call traces on windows/cygwin?