#7231: GHCi erroneously unloads modules after a failed :reload
------------------------------------------+---------------------------------
 Reporter:  parcs                         |          Owner:                  
     Type:  bug                           |         Status:  new             
 Priority:  normal                        |      Component:  GHCi            
  Version:  7.6.1                         |       Keywords:                  
       Os:  Unknown/Multiple              |   Architecture:  Unknown/Multiple
  Failure:  Compile-time performance bug  |       Testcase:                  
Blockedby:                                |       Blocking:                  
  Related:                                |  
------------------------------------------+---------------------------------

Comment(by parcs):

 I should probably explain how I arrived at this fix: sometimes an unstable
 module appears before a stable module in the module graph. When it comes
 time to load the unstable module, and if loading it fails, then the stable
 module that comes after it doesn't get loaded, though it should have been.

 So in the scenario outlined in the ticket description, the module graph
 looks like this:

 {{{
 mg = [ Bar (unstable), Foo (stable), Main (unstable) ]
 }}}

 and during the upsweep `Bar` will fail to load, so both `Foo` and `Main`
 get discarded. With the patch the module graph will look like:

 {{{
 mg = [ Foo (stable), Bar (unstable), Main (unstable) ]
 }}}

 and during the upsweep `Foo` will load successfully, and `Bar` will fail
 to load, so only `Main` gets discarded.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7231#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to