cvs commit: fptools/ghc/compiler/compMan CmLink.lhs CompManager.lhs
Simon Marlow
simonmar@glass.cse.ogi.edu
Wed, 1 Aug 2001 05:07:50 -0700
simonmar 2001/08/01 05:07:50 PDT
Modified files:
ghc/compiler/compMan CmLink.lhs CompManager.lhs
Log:
Signification cleanup & rewrite of CmLink.
Fixes at least one bug: the PersistentLinkerState could sometimes get
out of step with the RTS's idea of which modules were loaded, leading
to an unloadObj failure when we try to unload the same module twice.
This could happen if a ^C exception is received in the middle of a
:load.
Fixed by keeping the part of the linker's state that must match up
with the RTS's internal state entirely private to CmLink, stored in a
global variable. The operations in CmLink which manipulate this state
are now wrapped by Exception.block, and so are safe from ^C
exceptions.
Revision Changes Path
1.42 +140 -108 fptools/ghc/compiler/compMan/CmLink.lhs
1.84 +1 -1 fptools/ghc/compiler/compMan/CompManager.lhs