Portable keyboard signal handling
Robert Dockins
robdockins at fastmail.fm
Fri Sep 1 11:05:03 EDT 2006
On Friday 01 September 2006 03:55, Simon Peyton-Jones wrote:
> | Indeed. I had to browse the source after finding that the Haddock
> docs are
> | essentially useless. I do have to say, one nice side effect of using
> darcs
> | is that one can simply point one's browser at the source repository to
> peruse
> | the code. I've bookmarked http://cvs.haskell.org/darcs :-)
>
> Good idea. Could you help us improve the documentation by sending darcs
> patches with Haddock docs in them? Not necessarily comprehensive: at
> least recording the bits you discovered, and wished had been in the docs
> in the first place.
Well, here's the odd thing; there ought to be meaningful haddock docs already.
By that, I mean that there are data declarations and type signatures and such
already in the file that haddock should be picking up on. However, the whole
file is protected by a big ifdef:
module GHC.ConsoleHandler
#if !defined(mingw32_HOST_OS) && !defined(__HADDOCK__)
where
import Prelude -- necessary to get dependencies right
#else /* whole file */
( Handler(..)
, installHandler
, ConsoleEvent(..)
, flushConsole
) where
..... rest of file ....
It looks like the definitions in the file _should_ be visible to haddock, but
for some reason they aren't. So, this looks like a build system problem of
some sort to me. I don't know how the docs are built, so I'm not sure how
one would go about fixing this.
> Thanks!
>
> Simon
Do you have any ideas about the original question? It looks like RTS trickery
is necessary to get this right in general. Looking at this file in a little
more detail, I see calls to 'rts_installHandler', which is surely why this
file is in the GHC.* namespace.
Perhaps 'withControlCHandler' or something like it should go into the
libraries somewhere? I'm not sure this is a function that can be provided
without RTS assistance. It also seems to be about the maximum intersection
of the capabilities of Posix signals and of the Win32 console events system.
--
Rob Dockins
Talk softly and drive a Sherman tank.
Laugh hard, it's a long way to the bank.
-- TMBG
More information about the Libraries
mailing list