
#8029: batch-mode recompilation checking sometimes fails ------------------------------------------+--------------------------------- Reporter: jwlato | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Keywords: recompilation, batch-mode | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ------------------------------------------+--------------------------------- Comment(by jwlato): Sorry, it seems I cut it down too far. I was originally working in the context of parmake, which was compiling the other module first. That also explains the other error, which makes more sense now. If OtherList.hs is compiled first, so all the dependencies exist, I get {{{ Data/Top.hs:7:5: Ambiguous occurrence `foo' It could refer to either `Data.List.foo', imported from `Data.List' at Data/Top.hs:3:1-16 or `Data.OtherList.foo', imported from `Data.OtherList' at Data/Top.hs:4:1-21 }}} However, I'm not entirely convinced this is an actual bug. What I would like is for ghc to notice that Data/List.hs no longer exists and determine that Top's reference to Data.List must refer to the package-provided module, thereby ignoring Data/List.{hi,o}. That would limit the utility of batch-mode compilation though, as probably one use case for batch-mode is compiling modules when you may not have access to all the prior source, just the interface/object code. The behavior necessary to support that seems rather surprising, which is why I opened the ticket in the first place. Anyway, feel free to close as invalid/wontfix, unless you see a way to do everything properly. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/8029#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler