0/0 => "nan", not "NaN". Also,
empty hsc2hs dir and "invalid predicate `-wholename'"
Sven Panne
sven.panne at aedion.de
Thu Mar 22 10:54:56 EDT 2007
On Thursday 22 March 2007 02:13, Ian Lynagh wrote:
> hugs thinks that
>
> show (0/0 :: Double)
>
> is "nan", but it will only read "NaN". I'd suggest changing the
> behaviour of show rather than that of read, so as to match GHC:
>
> Prelude> show (0/0 :: Double)
> "NaN"
> Prelude> read "nan" :: Double
> *** Exception: Prelude.read: no parse
> Prelude> read "NaN" :: Double
> NaN [...]
What's even worse: I've just seen that neither Hugs nor nhc98 implement isNaN,
isInfinte, isDenormalized, isNegativeZero and isIEEE. :-( GHC does it via
some bit-fiddling in StgPrimFloat.c, but it is unclear to me why the stuff
from <math.h> (isnan() etc.) is not simply used instead. Does anybody
remember? These macros are C99, I think, but do we really support older C
standards?
> While building CVS/darcs hugs I got
>
> darcs get --partial http://darcs.haskell.org/hsc2hs
> Directory '/home/ian/code/hugs/hugs98/hsc2hs' already exists, creating
> repository as '/home/ian/code/hugs/hugs98/hsc2hs_0'
>
> I think due to an empty CVS directory; I had to jiggle them around for
> it to build later on.
I think the right way to solve this is having a "update -Pd" line in ~/.cvsrc.
I fail to understand why this behaviour is not the default...
> I also got
>
> /usr/bin/find: invalid predicate `-wholename'
>
> thrice. Replacing -wholename with -path in libraries/tools/make_bootlib
> let the build go through, but I'm not sure if this is either (a) correct
> or (b) a superset of the portability of -wholename.
We had reports about this earlier IIRC, and for the GNU 'find' -wholename
seems to be identical to -path, so I think this could be changed.
Cheers,
S.
More information about the Hugs-Bugs
mailing list