[GHC] #8503: New GeneralizedNewtypeDeriving check still isn't permissive enough
GHC
ghc-devs at haskell.org
Wed Nov 20 17:42:11 UTC 2013
#8503: New GeneralizedNewtypeDeriving check still isn't permissive enough
-------------------------------------+------------------------------------
Reporter: goldfire | Owner: goldfire
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.7
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Difficulty: Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets: #8541
-------------------------------------+------------------------------------
Comment (by nomeata):
I cherry-picked Richard’s implementation of GND via coerce
([https://github.com/goldfirere/ghc/commit/c76fed9a9c6bffc5b0858d39589dabfe93970c3e
c76fed]) onto wip/T8503 and GHC compiles (after `make clean`) just fine –
which is great.
There are test suite failures, though A lot are performance degrations
(some, if they are about the performance of GHC, are to be expected, the
Coercible machinery with subsequent simplification is not the fastest
code). The others are:
{{{
Unexpected failures:
codeGen/should_run cgrun068 [exit code non-0] (normal)
deriving/should_compile T2856 [exit code non-0] (normal)
deriving/should_compile drv015 [exit code non-0] (normal)
deriving/should_fail T1496 [stderr mismatch] (normal)
deriving/should_fail T2721 [stderr mismatch] (normal)
deriving/should_fail T4846 [stderr mismatch] (normal)
deriving/should_fail T7148 [stderr mismatch] (normal)
deriving/should_fail T7148a [stderr mismatch] (normal)
deriving/should_run drvrun019 [exit code non-0] (normal)
gadt CasePrune [stderr mismatch] (normal)
gadt gadt6 [exit code non-0] (normal)
ghci.debugger/scripts print018 [bad stdout] (ghci)
indexed-types/should_compile DerivingNewType [exit code non-0]
(normal)
indexed-types/should_compile IndTypesPerf [bad exit code] (normal)
indexed-types/should_compile T2850 [exit code non-0] (normal)
indexed-types/should_compile T3423 [exit code non-0] (normal)
indexed-types/should_compile T4185 [exit code non-0] (normal)
indexed-types/should_compile T5955 [bad exit code] (normal)
indexed-types/should_compile T7474 [exit code non-0] (normal)
lib/integer integerConstantFolding [bad stderr]
(normal)
polykinds T7332 [exit code non-0] (normal)
roles/should_fail Roles10 [stderr mismatch] (normal)
simplCore/should_compile T4203 [exit code non-0] (normal)
typecheck/should_compile T3955 [exit code non-0] (normal)
typecheck/should_fail T5246 [stderr mismatch] (normal)
}}}
Of these, there are a few where we get unresolved Coercible instances due
to roles (and many of them might be genuine and can probably be marked as
expected to fail), but there is also a number of panic and failed
assertions.
wip/T8503 itself validates, so these were either introduced or triggered
by implementing GND via coerce. Probably triggered, given that the GND
code now generates mostly straight-forward code.
I’ll start looking into some of them tomorrow, but Richard, if you feel
like helping debugging them, that would be appreciated. Some of them
appear in code that I do know know much about, such as module interfaces.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8503#comment:30>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list