
#9304: Floating point woes; Different behavior on Mac vs Linux -------------------------------------+------------------------------------ Reporter: lerkok | Owner: Type: bug | Status: new Priority: high | Milestone: Component: Compiler | Version: 7.8.3 Resolution: | Keywords: floating point Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: None/Unknown | Difficulty: Unknown Test Case: | Blocked By: 9276 Blocking: | Related Tickets: -------------------------------------+------------------------------------ Comment (by lerkok): Sure.. Here you go: {{{ [ubuntu-VirtualBox]~/precision/magichash>cat main.hs {-# LANGUAGE MagicHash #-} module Main where import GHC.Types import GHC.Prim main = do x <- return ((-4.4)::Double) y <- return ((2.4999999999999956):: Double) putStrLn $ show $ decodeFloat (myTimes x y) {-# NOINLINE myTimes #-} myTimes (D# a) (D# b) = D# res where res = a *## b [ubuntu-VirtualBox]~/precision/magichash>rm main.hi; rm main.o; ghc main.hs -o main; ./main [1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... (-6192449487634422,-49) [ubuntu-VirtualBox]~/precision/magichash>rm main.hi; rm main.o; ghc main.hs -msse2 -o main; ./main [1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... (-6192449487634421,-49) [ubuntu-VirtualBox]~/precision/magichash>rm main.hi; rm main.o; ghc main.hs -fexcess-precision -o main; ./main [1 of 1] Compiling Main ( main.hs, main.o ) Linking main ... (-6192449487634422,-49) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9304#comment:21 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler