[GHC] #9251: ghc does not expose branchless max/min operations as primops
GHC
ghc-devs at haskell.org
Sun Jul 6 19:28:02 UTC 2014
#9251: ghc does not expose branchless max/min operations as primops
-------------------------------------+------------------------------------
Reporter: carter | Owner: carter
Type: task | Status: new
Priority: normal | Milestone: 7.10.1
Component: Compiler | Version: 7.8.2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Difficulty: Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets: #9246
-------------------------------------+------------------------------------
Comment (by carter):
actually, importantly, in section 5.11 of the 2008 standard they say
Four mutually exclusive relations are possible: **less than** ,
**equal**, **greater than**, and **unordered**. The last case arises when
at least one operand is NaN. Every NaN shall compare unordered with
everything, including itself. Comparisons shall ignore the sign of zero
(so +0 = −0). Infinite operands of the same sign shall compare equal.
thus the Ord compare based instance should actually perhaps throw an
exception or otherwise fail when either argument is Nan? I'll need read a
bit more.
ANYWAY, theres several *distinct* semantics that can be chosen, and adding
suitable support to ghc for the different semantics that aren't
interexpressible is something I'll spend some time thinking about.
don't worry, you'll have the version you want, but there will be an IEEE
compliant one that also satisfies the corresponding haskell standard
(BOTH, if they disagree theres a serious problem i'll have to have some
discussion about)
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9251#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list