1. 08 Dec, 2012 2 commits
  2. 07 Dec, 2012 4 commits
  3. 06 Dec, 2012 2 commits
    • ian@well-typed.com's avatar
    • Simon Peyton Jones's avatar
      Stop attempting to "trim" data types in interface files · 9a20e540
      Simon Peyton Jones authored
      Without -O, we previously tried to make interface files smaller
      by not including the data constructors of data types.  But
      there are a lot of exceptions, notably when Template Haskell is
      involved or, more recently, DataKinds.
      However Trac #7445 shows that even without TemplateHaskell, using
      the Data class and invoking Language.Haskell.TH.Quote.dataToExpQ
      is enough to require us to expose the data constructors.
      So I've given up on this "optimisation" -- it's probably not
      important anyway.  Now I'm simply not attempting to trim off
      the data constructors.  The gain in simplicity is worth the
      modest cost in interface file growth, which is limited to the
      bits reqd to describe those data constructors.
  4. 05 Dec, 2012 4 commits
  5. 30 Nov, 2012 1 commit
    • Iavor S. Diatchki's avatar
      Add ":info!" to GHCi. This shows all instances without filtering first. · 2ec32a8e
      Iavor S. Diatchki authored
      The default behavior of :info is to show only those instances of
      for a type, where all relevant type constructor names are in scope.
      This keeps down the number of instances shown to the user.
      In some cases, it is nice to be able to see all instances for a type.
      This patch implements this with the :info! command.
  6. 29 Nov, 2012 1 commit
  7. 27 Nov, 2012 1 commit
  8. 26 Nov, 2012 1 commit
  9. 23 Nov, 2012 1 commit
  10. 21 Nov, 2012 1 commit
  11. 12 Nov, 2012 2 commits
    • ian@well-typed.com's avatar
      Replace mkDerivedConstants.c with DeriveConstants.hs · f49271c0
      ian@well-typed.com authored
      DeriveConstants.hs works in a cross-compilation-friendly way. Rather
      than running a C program that prints out the constants, we just compile
      a C file which has the constants are encoded in symbol sizes. We then
      parse the output of 'nm' to find out what the constants are.
      Based on work by Gabor Greif <ggreif@gmail.com>.
    • Simon Marlow's avatar
      Remove OldCmm, convert backends to consume new Cmm · d92bd17f
      Simon Marlow authored
      This removes the OldCmm data type and the CmmCvt pass that converts
      new Cmm to OldCmm.  The backends (NCGs, LLVM and C) have all been
      converted to consume new Cmm.
      The main difference between the two data types is that conditional
      branches in new Cmm have both true/false successors, whereas in OldCmm
      the false case was a fallthrough.  To generate slightly better code we
      occasionally need to invert a conditional to ensure that the
      branch-not-taken becomes a fallthrough; this was previously done in
      CmmCvt, and it is now done in CmmContFlowOpt.
      We could go further and use the Hoopl Block representation for native
      code, which would mean that we could use Hoopl's postorderDfs and
      analyses for native code, but for now I've left it as is, using the
      old ListGraph representation for native code.
  12. 02 Nov, 2012 3 commits
  13. 01 Nov, 2012 1 commit
  14. 30 Oct, 2012 1 commit
  15. 29 Oct, 2012 1 commit
  16. 26 Oct, 2012 1 commit
  17. 25 Oct, 2012 2 commits
  18. 23 Oct, 2012 1 commit
  19. 19 Oct, 2012 1 commit
  20. 18 Oct, 2012 1 commit
    • ian@well-typed.com's avatar
      Refactor the way dump flags are handled · d4a19643
      ian@well-typed.com authored
      We were being inconsistent about how we tested whether dump flags
      were enabled; in particular, sometimes we also checked the verbosity,
      and sometimes we didn't.
      This lead to oddities such as "ghc -v4" printing an "Asm code" section
      which didn't contain any code, and "-v4" enabled some parts of
      "-ddump-deriv" but not others.
      Now all the tests use dopt, which also takes the verbosity into account
      as appropriate.
  21. 17 Oct, 2012 2 commits
  22. 16 Oct, 2012 3 commits
  23. 15 Oct, 2012 3 commits