Re: Eliminating #ifdefs in fptools/libraries?

[moving from private mail to cvs-hugs -- hope that's OK, Volker] On Wed, Mar 19, 2003 at 10:22:28AM +0100, Volker Stolz wrote:
The new libraries branch contains a bunch of #ifdef's for Hugs around calls to threadWait{Read,Write}, especially in the network stuff.
You mean Network.Socket? The problems seem to be GHC.Posix.setNonBlockingFD, threadWait{Read,Write} and throwErrnoIfMinus1Retry_repeatOnBlock.
Could you add those functions as NOPs to Hugs' ConcBase? That way, the code base might clean up a bit...
I sympathize with your concern, but I'm a bit reluctant to have Hugs pretending to provide things that it really doesn't handle. (For example, I think Hugs should stop pretending that it offers unsafeInterleaveIO. There are dummy implementations of block and unblock, but they're correct because Hugs doesn't throw asynchronous exceptions.) I think it's better to make programmers explicitly aware of such shortcomings rather that let their programs compile and then not work. How about abstracting the problematic bits in Network.Socket as functions wrapped in #ifdef __HUGS__, but inside that module? That said, Hugs probably could implement threadWait{Read,Write}, at least on Posix and Win32 systems, but it probably won't happen for a while.

On Wed, Mar 19, 2003 at 10:01:38AM +0000, Ross Paterson wrote:
I sympathize with your concern, but I'm a bit reluctant to have Hugs pretending to provide things that it really doesn't handle. I think it's better to make programmers explicitly aware of such shortcomings rather that let their programs compile and then not work.
How about abstracting the problematic bits in Network.Socket as functions wrapped in #ifdef __HUGS__, but inside that module?
Yes, that would concentrate the #ifdefs where they won't hurt. Volker (in his own #ifdef-hell) -- Volker Stolz * http://www-i2.informatik.rwth-aachen.de/stolz/ * PGP * S/MIME
participants (2)
-
Ross Paterson
-
Volker Stolz