Permalink
Commits on Apr 1, 2014
  1. @dreixel

    Typo

    dreixel committed Apr 1, 2014
Commits on Mar 27, 2014
  1. @hvr

    add /Since/ annotation

    hvr committed Mar 27, 2014
Commits on Mar 24, 2014
  1. @thoughtpolice

    Mark Data.Coerce as Unsafe (#8827)

    Signed-off-by: Austin Seipp <austin@well-typed.com>
    thoughtpolice committed Mar 24, 2014
  2. @yav

    Comments only.

    Fix the documentation on CmpSymbol and CmpNat; add a note on (<=?).
    yav committed Mar 24, 2014
Commits on Mar 19, 2014
  1. @yav
Commits on Mar 16, 2014
  1. @nomeata

    Import Coercible from GHC.Types

    nomeata committed Mar 16, 2014
Commits on Mar 13, 2014
  1. @thoughtpolice

    Remove misleading comment

    We actually can't inline at phase 0 here, because there's probably a
    pretty good chance 'map' will get optimized away which will defeat the
    rule.
    
    Signed-off-by: Austin Seipp <austin@well-typed.com>
    thoughtpolice committed Mar 13, 2014
  2. @thoughtpolice

    Add RULE for "map coerce = map" (#8767)

    Signed-off-by: Austin Seipp <austin@well-typed.com>
    thoughtpolice committed Mar 13, 2014
  3. @simonpj

    Use not# rather than (`xor#` (-1)) for complement

    I'm not sure why we weren't using not# before; maybe it wasn't
    a primpop at that stage?  Strange.
    simonpj committed Mar 13, 2014
  4. @simonpj
  5. @simonpj

    Add shiftR and shiftL implementations to instance Bits Integer

    Apart from simply making sense (avoid the conditional in 'shift'),
    this makes left and right shifts on Integer more likely to inline
    (plain 'shift' is just too large); and this in turn is important
    when fixing the Integer case of #8832
    simonpj committed Mar 13, 2014
Commits on Mar 1, 2014
  1. @hvr

    Workaround failed constant-folding for zeroBits

    For some reason GHC fails to constant fold `zeroBits :: Int` and
    `zeroBits :: Integer`; `ghc -show-iface` shows
    
      $fBitsInt_$czeroBits :: GHC.Types.Int
         {- Strictness: m,
            Unfolding: (GHC.Types.I# (GHC.Prim.andI# 1 (GHC.Prim.notI# 1))) -}
    
    Otoh, constant-folding works as expected, reducing `zeroBits` to 0 constant
    for the other integer-types (= {Word,Int}{8,16,32,64}` and `Word`). So this
    quickfix is actually just treating the symptom rather than the cause.
    
    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
    hvr committed Mar 1, 2014
  2. @hvr

    Tweak Haddock comments in `Data.Ord.Down` added in ebc8526

    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
    hvr committed Mar 1, 2014
  3. @hvr

    Tweak documentation and update changelog.md

    This adds release note entries to changelog and tweaks Haddock comments
    with respect to the recent commits 1a9abe7 (re #8797) and
    f932b79 (re #8745)
    
    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
    hvr committed Mar 1, 2014
Commits on Feb 28, 2014
  1. @thoughtpolice

    Add some instances for Monoid/Applicative (#8797)

    As noted in the ticket, there's no particular reason why there aren't
    Generic, Typeable, and Data instances for the types in the
    Monoid/Applicative modules.
    
    Furthermore, Product and Sum should also have Num instances as well as
    Edward noted.
    
    Aside from that, this patch also changes the dependency chain slightly -
    it moves the Monoid Proxy instance into Data.Monoid and out of
    Data.Proxy.
    
    Why? Cycles (of course). Monoid depends on Typeable. Typeable uses
    Proxy. Proxy uses Monoid. Boom. Luckily, Proxy only depends on Monoid
    outside of the GHC namespace, so the fix is easy and clean.
    
    Signed-off-by: Austin Seipp <austin@well-typed.com>
    thoughtpolice committed Feb 28, 2014
  2. @thoughtpolice

    Create Data.Coerce (#8745)

    Data.Coerce is a Trustworthy module which safely exports both
    `Coercible` and `coerce` for use by users, as it can now be considered
    safe under role checking.
    
    See the ticket for details.
    
    Signed-off-by: Austin Seipp <austin@well-typed.com>
    thoughtpolice committed Feb 28, 2014
  3. @hvr

    Add new Data.Bits.Bits(zeroBits) method

    This adds a new method to `Bits` which completes the Bits API
    with a direct way to introduce a value with all bits cleared.
    
    See also original proposal at
    
      http://permalink.gmane.org/gmane.comp.lang.haskell.libraries/21157
    hvr committed Feb 28, 2014
Commits on Feb 25, 2014
  1. @hvr

    Tweak Haddock markup in Data.Typeable

    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
    hvr committed Feb 25, 2014
  2. @dreixel
  3. @dreixel
  4. @hvr

    Add `withMVarMasked` (re #8818)

    Like `withMVar`, but the @IO@ action in the second argument is executed
    with asynchronous exceptions masked. This completes the `MVar` API,
    which already contained `modifyMVarMasked` and `modifyMVarMasked_`.
    
    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
    hvr committed Feb 25, 2014
Commits on Feb 21, 2014
  1. @hvr

    Minor fixes to Haddock markup

    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
    hvr committed Feb 16, 2014
  2. @hvr

    Tweak Haddock markup in Control.Applicative

    This (arguably) improves rendering with Haddock 2.14
    
    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
    hvr committed Feb 16, 2014
  3. @hvr

    Fix typo in documentation of Data.Functor.($>)

    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
    hvr committed Feb 16, 2014
Commits on Feb 19, 2014
  1. @ggreif

    Minor typo in comment

    ggreif committed Feb 19, 2014
  2. @crdueck @hvr

    Use new bitwise Int# primops in Data.Bits (re #8791)

    The new primops (see also #7689) allow to optimize
    `instance Bits Int` by allowing to operate directly on Int#
    instead of having to convert to Word# and back to Int# again.
    
    Authored-by: Chris Dueck <crdueck@uwaterloo.ca>
    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
    crdueck committed with hvr Feb 19, 2014
Commits on Feb 17, 2014
  1. @nomeata
Commits on Feb 14, 2014
  1. @nomeata

    Wrong bug number

    the previous commit added a testcase for #8766, not #8374 -- too many
    tabs open.
    nomeata committed Feb 14, 2014
  2. @nomeata

    Test case for #8374

    nomeata committed Feb 14, 2014
  3. @nomeata

    Improve list fusion for [n::Integer..m]

    enumFromTo for Integers goes via enumDeltaToInteger, which is less
    efficient, as the "delta > = 0" check prevents more inlining which is
    required for good fusion code. This rule avoids tihs check for the
    common case of "delta = 1", makes up_fb visible and hence inlineable,
    which greatly improves "length [n:Integer..m]"; even more so with
    CallArity enabled. (#8766)
    nomeata committed Feb 14, 2014
Commits on Feb 10, 2014
  1. @nomeata @nomeata

    Inline maximum/minium a bit more aggresively

    in order to allow fusion of the foldr in the foldl in the foldl' therein.
    nomeata committed with nomeata Jan 29, 2014
  2. @nomeata

    Implement foldl with foldr

    together with the call arity analysis and the following patch (about inlining
    maximum), we get nice benefits from fusing foldl and foldl' with good
    producers:
    
                    Min          -0.1%    -74.5%     -6.8%     -8.3%    -50.0%
                    Max          +0.2%      0.0%    +38.5%    +38.5%      0.0%
         Geometric Mean          -0.0%     -4.1%     +7.7%     +7.7%     -0.8%
    
    Because this depends on a compiler optimisation, we have to watch out for cases
    where this is not an improvements, and whether they occur in the wild.
    nomeata committed Jan 28, 2014
Commits on Feb 5, 2014
  1. @hvr

    Add release note about new `SomeAsyncException`

    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
    hvr committed Feb 5, 2014
Commits on Feb 1, 2014
  1. @ggreif

    Fix a popular typo

    ggreif committed Feb 1, 2014
Commits on Jan 30, 2014
  1. @nomeata

    Show docs for coerce and Coercible in GHC.Exts

    as that is the canonical place for people to import them from.
    nomeata committed Jan 30, 2014