[GHC] #8029: batch-mode recompilation checking sometimes fails

GHC ghc-devs at haskell.org
Wed Jul 3 02:40:54 CEST 2013


#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



More information about the ghc-tickets mailing list