[GHC] #9238: Negative zero broken

GHC ghc-devs at haskell.org
Wed Jul 8 14:14:45 UTC 2015


#9238: Negative zero broken
-------------------------------------+-------------------------------------
        Reporter:  augustss          |                   Owner:
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:  7.12.1
       Component:  Compiler          |                 Version:  7.8.2
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  Incorrect result  |  Unknown/Multiple
  at runtime                         |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:  #7858, #9451      |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by bgamari):

 Replying to [comment:6 simonpj]:
 > I can tell you exactly where it's created: line 2107 of `Simplify.lhs`
 (in today's HEAD), in function `simplAlt`.
 >
 > However I'm suspicious of adding a special case for float/double here.
 Rather, I think we should prohibit using Core-language `case` expressions
 to scrutinise float/double, so that `case` (in Core) behaves in a simple,
 predictable way.
 >
 > Rather I think we should probably generate
 > {{{
 >    case eqDouble# ds1 0.0## of
 >      True -> ...
 >      False -> ...
 > }}}
 > (or, rather, today's unboxed-boolean version).  Now the magic is
 confined to how `eqDouble#` is implemented, which is the proper place for
 it.

 simonpj, how do you think your suggestion should interact with the `litEq`
 rule? As far as I can tell this `PrelRule` is responsible for most of the
 floating-point pattern matches that we are seeing. As you essentially
 suggesting we disable `litEq` for floating-point types?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9238#comment:13>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list