Mon Mar  6 23:37:36 PST 2006  Lemmih <[EMAIL PROTECTED]>
  * More work thrown at HscMain.
  
  MkIface.writeIfaceFile doesn't check GhcMode anymore. All it does
  is what the name say: write an interface to disk.
  I've refactored HscMain so the logic is easier to manage. That means
  we can avoid running the simplifier when typechecking (: And best of
  all, HscMain doesn't use GhcMode at all, anymore!
  
  The new HscMain intro looks like this:
  
  It's the task of the compilation proper to compile Haskell, hs-boot and
  core files to either byte-code, hard-code (C, asm, Java, ect) or to
  nothing at all (the module is still parsed and type-checked. This
  feature is mostly used by IDE's and the likes).
  Compilation can happen in either 'one-shot', 'batch', 'nothing',
  or 'interactive' mode. 'One-shot' mode targets hard-code, 'batch' mode
  targets hard-code, 'nothing' mode targets nothing and 'interactive' mode
  targets byte-code.
  The modes are kept separate because of their different types and meanings.
  In 'one-shot' mode, we're only compiling a single file and can therefore
  discard the new ModIface and ModDetails. This is also the reason it only
  targets hard-code; compiling to byte-code or nothing doesn't make sense
  when we discard the result.
  'Batch' mode is like 'one-shot' except that we keep the resulting ModIface
  and ModDetails. 'Batch' mode doesn't target byte-code since that require
  us to return the newly compiled byte-code.
  'Nothing' mode has exactly the same type as 'batch' mode but they're still
  kept separate. This is because compiling to nothing is fairly special: We
  don't output any interface files, we don't run the simplifier and we don't
  generate any code.
  'Interactive' mode is similar to 'batch' mode except that we return the
  compiled byte-code together with the ModIface and ModDetails.
  

    M ./ghc/compiler/iface/MkIface.lhs -12 +5
    M ./ghc/compiler/main/DriverPipeline.hs -3 +5
    M ./ghc/compiler/main/HscMain.lhs -213 +274
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to