1. 13 Sep, 2012 1 commit
  2. 03 Sep, 2012 8 commits
  3. 31 Aug, 2012 2 commits
  4. 07 Aug, 2012 1 commit
  5. 06 Aug, 2012 1 commit
  6. 05 Aug, 2012 3 commits
  7. 02 Aug, 2012 1 commit
    • Simon Marlow's avatar
      Explicitly share some return continuations · 6ede0067
      Simon Marlow authored
      Instead of relying on common-block-elimination to share return
      continuations in the common case (case-alternative heap checks) we do
      it explicitly.  This isn't hard to do, is more robust, and saves some
      compilation time.  Full commentary in Note [sharing continuations].
  8. 30 Jul, 2012 1 commit
    • Simon Marlow's avatar
      New codegen: do not split proc-points when using the NCG · f1ed6a10
      Simon Marlow authored
      Proc-point splitting is only required by backends that do not support
      having proc-points within a code block (that is, everything except the
      native backend, i.e. LLVM and C).
      Not doing proc-point splitting saves some compilation time, and might
      produce slightly better code in some cases.
  9. 26 Jul, 2012 1 commit
  10. 24 Jul, 2012 2 commits
  11. 20 Jul, 2012 1 commit
  12. 18 Jul, 2012 1 commit
    • pcapriotti's avatar
      Remove hPrintDump and make rule dump output more consistent (#7060) · 2b341fc4
      pcapriotti authored
      The only difference between SevDump and SevOutput in defaultLogAction is
      an extra blank line, so we don't need a separate hPrintDump function.
      Also make -ddump-to-file consistent with the stdout version, by avoiding
      to add the extra empty line when dumping rules.
  13. 16 Jul, 2012 4 commits
  14. 26 Jun, 2012 1 commit
  15. 25 Jun, 2012 2 commits
  16. 20 Jun, 2012 2 commits
  17. 18 Jun, 2012 4 commits
  18. 14 Jun, 2012 2 commits
  19. 13 Jun, 2012 2 commits
    • Simon Peyton Jones's avatar
      Simplify the implementation of Implicit Parameters · 5a8ac0f8
      Simon Peyton Jones authored
      This patch re-implements implicit parameters via a class
      with a functional dependency:
          class IP (n::Symbol) a | n -> a where
            ip :: a
      This definition is in the library module GHC.IP. Notice
      how it use a type-literal, so we can have constraints like
         IP "x" Int
      Now all the functional dependency machinery works right to make
      implicit parameters behave as they should.
      Much special-case processing for implicit parameters can be removed
      entirely. One particularly nice thing is not having a dedicated
      "original-name cache" for implicit parameters (the nsNames field of
      NameCache).  But many other cases disappear:
        * BasicTypes.IPName
        * IPTyCon constructor in Tycon.TyCon
        * CIPCan constructor  in TcRnTypes.Ct
        * IPPred constructor  in Types.PredTree
      Implicit parameters remain special in a few ways:
       * Special syntax.  Eg the constraint (IP "x" Int) is parsed
         and printed as (?x::Int).  And we still have local bindings
         for implicit parameters, and occurrences thereof.
       * A implicit-parameter binding  (let ?x = True in e) amounts
         to a local instance declaration, which we have not had before.
         It just generates an implication contraint (easy), but when
         going under it we must purge any existing bindings for
         ?x in the inert set.  See Note [Shadowing of Implicit Parameters]
         in TcSimplify
       * TcMType.sizePred classifies implicit parameter constraints as size-0,
         as before the change
      There are accompanying patches to libraries 'base' and 'haddock'
      All the work was done by Iavor Diatchki
    • Ian Lynagh's avatar
      Follow spelling fixes · 0cba443f
      Ian Lynagh authored