[GHC] #10288: -flate-dmd-anal triggers "Entered absent arg"
GHC
ghc-devs at haskell.org
Tue Apr 21 08:18:15 UTC 2015
#10288: -flate-dmd-anal triggers "Entered absent arg"
-------------------------------------+-------------------------------------
Reporter: yongqli | Owner: simonpj
Type: bug | Status: new
Priority: normal | Milestone: 7.10.2
Component: Compiler | Version: 7.10.1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Runtime crash | Unknown/Multiple
Blocked By: | Test Case:
Related Tickets: | Blocking:
| Differential Revisions:
-------------------------------------+-------------------------------------
Comment (by Simon Peyton Jones <simonpj@…>):
In [changeset:"d5773a4939b1feea51ec0db6624c9462751e948a/ghc"]:
{{{
#!CommitTicketReference repository="ghc"
revision="d5773a4939b1feea51ec0db6624c9462751e948a"
Teach DmdAnal that coercions are value arguments!
The demand analyser was treating coercion args like type args,
which meant that the arguments in a strictness signature got
out of step with the arguments of a call. Result chaos and
disaster. Trac #10288 showed it up.
It's hard to get this bug to show up in practice because
- functions abstracted over coercions are usually abstracted
over *boxed* coercions
- we don't currently unbox a boxed-coercion arg because it's
GADT (I see how to fix this too)
But after floating, optimisation, and so on, Trac #10288 did
get a function abstracted over an unboxed coercion, and then
the -flate-dmd-anal pass went wrong.
I don't think I can come up with a test case, but I don't think
it matters too much.
Still to come
- Fix a second bug, namely that coercion variables are wrongly
marked as absent because DmdAnal doesn't check the the free
variables of casts. I think this never bites in practice
(see the follow-up commit)
- Make GADT products work with strictness analysis
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10288#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list