[GHC] #9450: GHC instantiates Data instances before checking hs-boot files
GHC
ghc-devs at haskell.org
Sun Aug 17 22:28:27 UTC 2014
#9450: GHC instantiates Data instances before checking hs-boot files
-------------------------------------+-------------------------------------
Reporter: alanz | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.8.3
Resolution: | Keywords: boot,deriving
Operating System: | Architecture: x86_64 (amd64)
Unknown/Multiple | Difficulty: Unknown
Type of failure: Compile- | Blocked By:
time crash | Related Tickets:
Test Case: |
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
Comment (by simonpj):
This is awkward. GHC currently typechecks the source file, and then
compares with the hs-boot file for consistency. And indeed, we ''must''
do that, because until we have done at least some typechecking we don't
have any type from the source file to compare with those in the hs-boot
file.
I suppose that the difficulty is that the very act of typechecking the
source file leads to an unexpected situation and a crash. I have not
worked out the details.
I'm not sure how to solve this. One route (which seems like the right
one) might be to make the check ''whenever extending the type
environment''; that is, as soon as we have got to the point of adding a
data type T, or function f, to the environment, at that moment check
compatibility.
Probably not too hard, but a bit fiddly, and I'm definitely not going to
have time to do it soon. And yet it's bad that GHC actually crashes. It
should never do that.
Simon
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9450#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list