> Same happens in HEAD, so nothing to do with your changes. I didn't notice that, I was comparing against 7.6.2 :/
> Better define mkFloatingRelOpRule instead, which doesn't have the equal-args > thing. That's what I did initially, but I wasn't sure if that's acceptable because some optimisations will be gone, e.g. ==# 3.0 3.0 will not rewrite to #1 (perhaps this isn't that bad, because comparing floating point numbers for equality isn't a good idea anyway). Janek > > Simon > > | -----Original Message----- > | From: ghc-devs-boun...@haskell.org [mailto:ghc-devs-boun...@haskell.org] > | On Behalf Of Jan Stolarek > | Sent: 22 April 2013 13:48 > | To: ghc-devs@haskell.org > | Subject: Handling of NaN > | > | I need some help with my work on ticket #6135. Consider this program: > | > | {-# LANGUAGE BangPatterns, MagicHash #-} module Main where > | > | import GHC.Exts > | > | main = print $ nan## ==## nan## > | where !(D# nan##) = 0.0 / 0.0 > | > | This prints False, which is a correct implementation of IEEE754 > | standard. However when I compile this with my modified compiler that > | uses new comparison primops (they return Int# instead of > | Bool) I get True, whcih obviously is incorrect. I belive that the > | problem lies in this piece of code from prelude/PrelRules.hs: > | > | mkRelOpRule :: Name -> (forall a . Ord a => a -> a -> Bool) > | -> [RuleM CoreExpr] -> Maybe CoreRule mkRelOpRule nm cmp > | extra > | = mkPrimOpRule nm 2 $ rules ++ extra > | where > | rules = [ binaryLit (\_ -> cmpOp cmp) > | , equalArgs >> > | -- x `cmp` x does not depend on x, so > | -- compute it for the arbitrary value 'True' > | -- and use that result > | return (if cmp True True > | then trueVal > | else falseVal) ] > | > | It looks that equalArgs suddenly started to return True, whereas it > | previously returned False. On the other hand in GHCi I get correct > | result (False). Can anyone give me a hint why is this happening? > | > | Janek > | > | _______________________________________________ > | ghc-devs mailing list > | ghc-devs@haskell.org > | http://www.haskell.org/mailman/listinfo/ghc-devs _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs