[GHC] #7231: GHCi erroneously unloads modules after a failed :reload
GHC
cvs-ghc at haskell.org
Sun Sep 9 21:46:57 CEST 2012
#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
More information about the Glasgow-haskell-bugs
mailing list