[GHC] #8247: Dependency tracking (--make) broken for re-exported modules

GHC ghc-devs at haskell.org
Fri Sep 6 20:41:30 CEST 2013


#8247: Dependency tracking (--make) broken for re-exported modules
------------------------------------+-------------------------------------
       Reporter:  heisenbug         |             Owner:
           Type:  bug               |            Status:  new
       Priority:  normal            |         Milestone:
      Component:  Compiler          |           Version:  7.7
       Keywords:                    |  Operating System:  Unknown/Multiple
   Architecture:  Unknown/Multiple  |   Type of failure:  None/Unknown
     Difficulty:  Unknown           |         Test Case:
     Blocked By:                    |          Blocking:
Related Tickets:                    |
------------------------------------+-------------------------------------
 Say, I re-export a module, from which I hide some bindings:
 {{{
 module B (module A) where
 import A hiding (a1)
 }}}
 where `A` is defined thus:
 {{{
 module A where
 a1 = 5
 a2 = 42
 a3 = 113
 }}}

 I use `B` from `C`:
 {{{
 module C where
 import B
 a2 = 142
 }}}

 Build `C`, with `ghc --make C.hs`, observing redefinition error (of `a2`).

 Now hide also `a2` in `B` like this (by editing `B.hs`):
 {{{
 module B (module A) where
 import A hiding (a1, a2)
 }}}

 Build `C` again, and observe that the error persists, because `B` has not
 been rebuilt, and its interface file not regenerated.

 Deleting `B.hi` and recompiling resolves the situation.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8247>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler




More information about the ghc-tickets mailing list