[GHC] #11013: GHC sometimes forgets to test for hs-boot consistency
GHC
ghc-devs at haskell.org
Sat Oct 24 07:54:01 UTC 2015
#11013: GHC sometimes forgets to test for hs-boot consistency
-------------------------------------+-------------------------------------
Reporter: ezyang | Owner:
Type: bug | Status: new
Priority: low | Milestone:
Component: Compiler | Version: 7.11
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: GHC accepts
Unknown/Multiple | invalid program
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Steps to reproduce: create your classic circular dependency:
{{{
-- A.hs-boot
module A where
}}}
{{{
-- B.hs
module B where
import {-# SOURCE #-} A
}}}
{{{
-- A.hs
module A where
import B
}}}
Now run this:
{{{
ghc -c A.hs-boot
ghc -c B.hs
ghc -c A.hs
echo "module A where x :: Bool" > A.hs-boot
ghc -c A.hs-boot
ghc -c B.hs
ghc -c A.hs
}}}
Expected result: A.hs recompiles and gives us an error that we don't
implement enough.
Actual result: compilation IS NOT required. (Obviously, if you force
recomp you do get an error now.)
I think the problem is `checkOldIface` doesn't also look for an hi-boot
file, and even if it did, we don't record the hashes from the hi-boot file
in the hi file proper (they're not an immediate dependency).
Related #10333
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11013>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list