1. 01 Oct, 2013 20 commits
    • unknown's avatar
      Improve pretty-printing of types · 66c5ddba
      unknown authored
      * The main change is to suppress printing (in types) of
           kind for-alls
           kind applications
        The new flag -fprint-explicit-kinds prints them as before
        (by analogy with the existing -fprint-explicit-foralls)
      
      * I also took advantage of the fact that SDoc now has access
        to DynFlags, to tidy up the way in which explicit for-alls
        are printed.  Instead of passing a boolean flag around, we
        now simply consult the DynFlags.  Much neater.
      
      I still need to add documentation for the flag
      66c5ddba
    • unknown's avatar
      Improve error reporting of fundep coverage condition failure · bceeb016
      unknown authored
      This modest improvement is motivated by Trac #8356
      bceeb016
    • unknown's avatar
      Look inside tuple predicates when checking instance declaration contexts · 4407614c
      unknown authored
      This fixes Trac #8359
      4407614c
    • unknown's avatar
      Comments only · badbbe0d
      unknown authored
      badbbe0d
    • unknown's avatar
      Move defaultClassMinimalDef from BuildTyCl to TcClassDcl · 96f33e63
      unknown authored
      Simple refactoring.
      
      Also in Vectorise.Types/TyConDecl, simply propagate the classMinimalDef
      from the class we are vectorising. Simpler and more direct.
      96f33e63
    • unknown's avatar
      Comments only · e276ed78
      unknown authored
      e276ed78
    • unknown's avatar
      Better docs for MINIMAL · 36035d87
      unknown authored
      36035d87
    • Simon Peyton Jones's avatar
      Lift an unnecessary assumption in the demand analyser (fix Trac #8329) · 9bd36664
      Simon Peyton Jones authored
      Here's the Note about the (simple) fix.  Apparently #8329 prevented all
      23 packages of the Snap framework from compiling.
      
      Note [Demand transformer for a ditionary selector]
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      If we evaluate (op dict-expr) under demand 'd', then we can push the demand 'd'
      into the appropriate field of the dictionary. What *is* the appropriate field?
      We just look at the strictness signature of the class op, which will be
      something like: U(AAASAAAAA).  Then replace the 'S' by the demand 'd'.
      
      For single-method classes, which are represented by newtypes the signature
      of 'op' won't look like U(...), so the splitProdDmd_maybe will fail.
      That's fine: if we are doing strictness analysis we are also doing inling,
      so we'll have inlined 'op' into a cast.  So we can bale out in a conservative
      way, returning topDmdType.
      
      It is (just.. Trac #8329) possible to be running strictness analysis *without*
      having inlined class ops from single-method classes.  Suppose you are using
      ghc --make; and the first module has a local -O0 flag.  So you may load a class
      without interface pragmas, ie (currently) without an unfolding for the class
      ops.   Now if a subsequent module in the --make sweep has a local -O flag
      you might do strictness analysis, but there is no inlining for the class op.
      This is wierd so I'm not worried about whether this optimises brilliantly; but
      it should not fall over.
      9bd36664
    • Simon Marlow's avatar
      comment update · 3c9aa40f
      Simon Marlow authored
      3c9aa40f
    • Simon Marlow's avatar
      Add layout to MultiWayIf (#7783) · aab65608
      Simon Marlow authored
      This makes it possible to write
      
      x = if | False -> if | False -> 1
                           | False -> 2
             | True -> 3
      
      Layout normally inserts semicolons between declarations at the same
      indentation level, so I added optional semicolons to the syntax for
      guards in MultiWayIf syntax.  This is a bit of a hack, but the
      alternative (a special kind of layout that doesn't insert semicolons)
      seemed worse, or at least equally bad.
      aab65608
    • Simon Marlow's avatar
      Add back a comment that got lost · c0f89a1b
      Simon Marlow authored
      c0f89a1b
    • Simon Marlow's avatar
      Clarification in the docs for INLINE · 2798a174
      Simon Marlow authored
      People often jump to the conclusion that functions aren't inlined
      unless you say INLINE, so clarify the documentation to emphasize the
      fact that you shouldn't normally need to use INLINE unless you need to
      override the defaults.
      2798a174
    • Simon Marlow's avatar
      9bbbf266
    • Simon Marlow's avatar
      grammar fix · ab3abf15
      Simon Marlow authored
      ab3abf15
    • Simon Marlow's avatar
    • Simon Marlow's avatar
      use StgWord not StgWord8 for wakeup · 0b0fec53
      Simon Marlow authored
      volatile StgWord8 is not guaranteed to be atomic.
      0b0fec53
    • Simon Marlow's avatar
      use a nat, not StgWord8, for gc_type · cb7785f6
      Simon Marlow authored
      cb7785f6
    • Simon Marlow's avatar
      Remove use of R9, and fix associated bugs · 11b5ce55
      Simon Marlow authored
      We were passing the function address to stg_gc_prim_p in R9, which was
      wrong because the call was a high-level call and didn't declare R9 as
      a parameter.  Passing R9 as an argument is the right way, but
      unfortunately that exposed another bug: we were using the same macro
      in some low-level Cmm, where it is illegal to call functions with
      arguments (see Note [syntax of cmm files]).  So we now have low-level
      variants of STK_CHK() and STK_CHK_P() for use in low-level Cmm code.
      11b5ce55
    • Simon Marlow's avatar
      56084d76
    • Krzysztof Gogolewski's avatar
      Typos in users' guide · 4b8a928d
      Krzysztof Gogolewski authored
      4b8a928d
  2. 30 Sep, 2013 2 commits
  3. 29 Sep, 2013 5 commits
  4. 28 Sep, 2013 3 commits
  5. 27 Sep, 2013 5 commits
  6. 26 Sep, 2013 1 commit
  7. 24 Sep, 2013 3 commits
  8. 23 Sep, 2013 1 commit