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