1. 10 Mar, 2006 3 commits
  2. 13 Mar, 2006 1 commit
  3. 07 Mar, 2006 1 commit
  4. 10 Mar, 2006 4 commits
    • Simon Marlow's avatar
      fix the build with GHC 6.4 (not 6.4.1) · 71f2cb60
      Simon Marlow authored
    • David Himmelstrup's avatar
      Wibble in HscMain. · 14f70d83
      David Himmelstrup authored
    • David Himmelstrup's avatar
      Initial foundation for quickcheck tests. · 0490ee1f
      David Himmelstrup authored
      I have no idea how to use the testsuite so I'll start
      making QuickCheck tests instead.
      I've included tests for 'HeaderInfo.getOptions'.
    • David Himmelstrup's avatar
      Parse OPTIONS properly and cache the result. · d700953c
      David Himmelstrup authored
      Use the lexer to parse OPTIONS, LANGUAGE and INCLUDE pragmas.
      This gives us greater flexibility and far better error
      messages. However, I had to make a few quirks:
        * The token parser is written manually since Happy doesn't
          like lexer errors (we need to extract options before the
          buffer is passed through 'cpp'). Still better than
          manually parsing a String, though.
        * The StringBuffer API has been extended so files can be
          read in blocks.
      I also made a new field in ModSummary called ms_hspp_opts
      which stores the updated DynFlags. Oh, and I took the liberty
      of moving 'getImports' into HeaderInfo together with
  5. 08 Mar, 2006 2 commits
  6. 07 Mar, 2006 3 commits
    • Simon Marlow's avatar
    • Simon Marlow's avatar
      x86_64: add -fno-builtin to gcc command line for .hc files. · 646d6f52
      Simon Marlow authored
      This seems to be required now that we're stealing more registers.
    • David Himmelstrup's avatar
      More work thrown at HscMain. · d1545b69
      David Himmelstrup authored
      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.
  7. 06 Mar, 2006 5 commits
  8. 05 Mar, 2006 1 commit
  9. 04 Mar, 2006 12 commits
  10. 03 Mar, 2006 1 commit
  11. 09 Feb, 2006 1 commit
  12. 05 Feb, 2006 2 commits
  13. 03 Feb, 2006 1 commit
  14. 02 Mar, 2006 3 commits
    • simonpj@microsoft.com's avatar
      Fix free-variable finder · d1e15bd2
      simonpj@microsoft.com authored
      After a long hunt I discovered that the reason that GHC.Enum.eftIntFB
      was being marked as a loop-breaker was the bizare behaviour of exprFreeVars,
      which returned not only the free variables of an expression but also the
      free variables of RULES attached to variables occuring in the expression!
      This was clearly deliberate (the comment was CoreFVs rev 1.1 in 1999) but
      I've removed it; I've left the comment with further notes in case there
      turns out to be a Deep Reason.
    • Simon Marlow's avatar
      Make -split-objs work with --make · ec968a32
      Simon Marlow authored
      This turned out to be a lot easier than I thought.  Just moving a few
      bits of -split-objs support from the build system into the compiler
      was enough.  The only thing that Cabal needs to do in order to support
      -split-objs now is to pass the names of the split objects rather than
      the monolithic ones to 'ar'.
    • Simon Marlow's avatar