1. 25 Apr, 2012 1 commit
  2. 24 Apr, 2012 2 commits
  3. 23 Apr, 2012 4 commits
  4. 22 Apr, 2012 3 commits
  5. 21 Apr, 2012 3 commits
  6. 20 Apr, 2012 9 commits
  7. 19 Apr, 2012 1 commit
  8. 16 Apr, 2012 9 commits
  9. 13 Apr, 2012 7 commits
    • Simon Peyton Jones's avatar
    • Simon Peyton Jones's avatar
      Allow kind-variable binders in type signatures · c5554f82
      Simon Peyton Jones authored
      This is the last major addition to the kind-polymorphism story,
      by allowing (Trac #5938)
      
       type family F a   -- F :: forall k. k -> *
       data T a          -- T :: forall k. k -> *
       type instance F (T (a :: Maybe k)) = Char
      
      The new thing is the explicit 'k' in the type signature on 'a',
      which itself is inside a type pattern for F.
      
      Main changes are:
      
      * HsTypes.HsBSig now has a *pair* (kvs, tvs) of binders,
        the kind variables and the type variables
      
      * extractHsTyRdrTyVars returns a pair (kvs, tvs)
        and the function itself has moved from RdrHsSyn to RnTypes
      
      * Quite a bit of fiddling with
           TcHsType.tcHsPatSigType and tcPatSig
        which have become a bit simpler.  I'm still not satisfied
        though.  There's some consequential fiddling in TcRules too.
      
      * Removed the unused HsUtils.collectSigTysFromPats
      
      There's a consequential wibble to Haddock too
      c5554f82
    • Simon Peyton Jones's avatar
      Fix worker/wrapper for CPR functions · b8ff4448
      Simon Peyton Jones authored
      A long-standing and egregious bug in the worker/wrapper code meant
      that some functions with the CPR property weren't getting a CPR
      w/w. And that had the effect of making a tail-recursive function not
      tail recursive.  As well as increasing allocation.
      
      Fixes Trac #5920, and #5997.
      
      Nofib results (highlights):
      
              Program           Size    Allocs   Runtime   Elapsed  TotalMem
      --------------------------------------------------------------------------------
               boyer2          -0.1%    -15.3%      0.01      0.01     +0.0%
              mandel2          -0.0%     -8.1%      0.01      0.01     +0.0%
                 para          -0.1%    -11.8%     -7.9%     -7.8%     +0.0%
      --------------------------------------------------------------------------------
                  Min          -0.1%    -15.3%     -7.9%     -7.8%    -33.3%
                  Max          +0.0%     +0.2%     +6.3%     +6.3%     +3.7%
       Geometric Mean          -0.0%     -0.4%     +0.1%     +0.1%     -0.5%
      
      Looks like a clear win.  And I have not even recompiled the libraries, so
      it'll probably be a bit better in the ed.
      b8ff4448
    • Simon Peyton Jones's avatar
      Allow overlaps when -XIncoherentInstances is in force · 6bf81598
      Simon Peyton Jones authored
      This change allows a top-level instance to be used even if there is
      a (potentially) overlapping local given.  Which isn't fab, but it is
      what IncoherentInstances is *for*.
      
      This fixes the bug part of Trac #6002.
      6bf81598
    • Simon Peyton Jones's avatar
      Untabify HsTypes · 3377abeb
      Simon Peyton Jones authored
      3377abeb
    • Simon Peyton Jones's avatar
      Revert "Added ':runmonad' command to GHCi" · e0e99f99
      Simon Peyton Jones authored
      Two problems, for now at any rate
        a) Breaks the build with lots of errors like
              No instance for (Show (IO ())) arising from a use of `print'
        b) Discussion of the approache hasn't converged yet
           (Simon M had a number of suggestions)
      
      This reverts commit eecd7c98.
      e0e99f99
    • dterei's avatar
      Added ':runmonad' command to GHCi · eecd7c98
      dterei authored
      This command allows you to lift user stmts in GHCi into an IO monad
      that implements the GHC.GHCi.GHCiSandboxIO type class. This allows for
      easy sandboxing of GHCi using :runmonad and Safe Haskell.
      
      Longer term it would be nice to allow a more general model for the Monad
      than GHCiSandboxIO but delaying this for the moment.
      eecd7c98
  10. 12 Apr, 2012 1 commit