[GHC] #15696: Derived Ord instance for enumerations with more than 8 elements seems to be incorrect
GHC
ghc-devs at haskell.org
Fri Oct 12 17:29:01 UTC 2018
#15696: Derived Ord instance for enumerations with more than 8 elements seems to be
incorrect
-------------------------------------+-------------------------------------
Reporter: mrkkrp | Owner: osa1
Type: bug | Status: patch
Priority: highest | Milestone: 8.6.2
Component: Compiler | Version: 8.6.1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Incorrect result | Unknown/Multiple
at runtime | Test Case:
Blocked By: | Blocking:
Related Tickets: #14677, #15155 | Differential Rev(s): Phab:D5196,
Wiki Page: | Phab:D5201
-------------------------------------+-------------------------------------
Comment (by osa1):
I'm probably missing the big picture, but I think it makes sense to give
evaluated things `evaldUnfolding` and if that breaks something else then
we should fix that something else. In (3) of comment:60, perhaps the thing
to fix is the binder-swapping transform rather than the id unfolding, so
that it avoids swapping binders with different evaluated-ness (or maybe
only avoid it if doing so will break the let/app invariant -- not sure how
hard would it be to check this though).
I don't know enough about demand analysis to comment on Secondly. I'll try
it.
Re Thirdly, the demand type does not make too much sense to me (how can an
id have strict demand but unused cardinality? Sounds like a hack to make
some transformations possible) but I can see how the current code changes
cardinality incorrectly. I'll update.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15696#comment:78>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list