
#9035: ghci sometimes displays Word32 as Word64 ------------------------------------------------+-------------------------- Reporter: MikeIzbicki | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: GHCi | Version: 7.8.2 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 Type of failure: Incorrect result at runtime | (amd64) Test Case: | Difficulty: Blocking: | Unknown | Blocked By: | Related Tickets: ------------------------------------------------+-------------------------- Comment (by hvr): Replying to [ticket:9035 MikeIzbicki]:
For some reason, ghci is displaying (nanFloat+1) as having significantly more digits than can possibly stored in a Word32 value.
Part of the reason is, that `Word32` is actually implemented as {{{#!haskell data Word32 = W32# Word# deriving (Eq, Ord) }}} and `Word#` is actually 64bit wide on the `x86_64` platform. So, `Word32` internally //can// actually store more digits than a 32-bit unsigned integer is supposed to hold. What I can't explain, though, is why a single-precision float, which should be 32bit wide, leaks into the hidden unused upper 32bit part of the `Float` (and thus also into the unsafely coerced `Word32`) heap object. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9035#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler