This project is mirrored from https://gitlab.haskell.org/ghc/ghc.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
  1. 17 Feb, 2014 1 commit
  2. 14 Feb, 2014 3 commits
    • Joachim Breitner's avatar
      Wrong bug number · 61cf76d7
      Joachim Breitner authored
      the previous commit added a testcase for #8766, not #8374 -- too many
      tabs open.
      61cf76d7
    • Joachim Breitner's avatar
      Test case for #8374 · 58c8934c
      Joachim Breitner authored
      58c8934c
    • Joachim Breitner's avatar
      Improve list fusion for [n::Integer..m] · 60ebfcff
      Joachim Breitner authored
      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)
      60ebfcff
  3. 10 Feb, 2014 2 commits
    • Joachim Breitner's avatar
      Inline maximum/minium a bit more aggresively · 79dfb968
      Joachim Breitner authored
      in order to allow fusion of the foldr in the foldl in the foldl' therein.
      79dfb968
    • Joachim Breitner's avatar
      Implement foldl with foldr · 78221667
      Joachim Breitner authored
      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.
      78221667
  4. 05 Feb, 2014 1 commit
  5. 01 Feb, 2014 1 commit
  6. 30 Jan, 2014 3 commits
    • Joachim Breitner's avatar
      Show docs for coerce and Coercible in GHC.Exts · 02dde837
      Joachim Breitner authored
      as that is the canonical place for people to import them from.
      02dde837
    • Herbert Valerio Riedel's avatar
      Derive `FiniteBits` for integral newtype wrappers · 276c4621
      Herbert Valerio Riedel authored
      
      
      When `FiniteBits` was introduced in cddc9024e67a6d4c01bb190839d0134af8c907e0
      only the standard Haskell 2010 finite-size integral types were given a
      `FiniteBits` instance, however, since also a DEPRECATION warning was put
      in place (as per 701d9ed4b2bec5922709a91bfb625881d7dd47f0) for `bitSize`
      which might point people to to `FiniteBits`, it seems sensible to derive
      `FiniteBits` for all integral newtype wrappers as well.
      
      N.B.: This makes `Integer` the only type in `base` with a `Bits`
            instance but no `FiniteBits` instance.
      Signed-off-by: Herbert Valerio Riedel's avatarHerbert Valerio Riedel <hvr@gnu.org>
      276c4621
    • Herbert Valerio Riedel's avatar
      Improve Haddock markup · cc4ba35f
      Herbert Valerio Riedel authored
      
      
      This fixes the markup at the top of `Control.Arrow`, and improves the
      markup inside DEPRECATED strings.
      
      (Haddock supports markup inside DEPRECATED messages, which allows to
      turn references to Haskell entities into hyperlinks by using the usual
      Haddock markup.)
      Signed-off-by: Herbert Valerio Riedel's avatarHerbert Valerio Riedel <hvr@gnu.org>
      cc4ba35f
  7. 29 Jan, 2014 6 commits
  8. 28 Jan, 2014 1 commit
    • Joachim Breitner's avatar
      go-ify foldr2 · 81b6befa
      Joachim Breitner authored
      This helps with the changes in #7994, but might also generally be a good
      idea (ignore the runtime):
      
      --------------------------------------------------------------------------------
              Program           Size    Allocs   Runtime   Elapsed  TotalMem
                 fft2          -0.1%     -1.5%      0.07      0.07     +0.0%
             fibheaps          +0.0%    -17.2%      0.03      0.03     +0.0%
                fluid          +0.5%     -0.7%      0.01      0.01     +0.0%
            integrate          +0.0%     -0.9%      0.16      0.16     +0.0%
              rewrite          +0.0%     -1.1%      0.02      0.02     +0.0%
      --------------------------------------------------------------------------------
                  Min          -0.1%    -17.2%     -1.6%     +0.0%     +0.0%
                  Max          +0.5%     +0.0%   +107.7%   +106.2%    +11.3%
       Geometric Mean          +0.0%     -0.2%    +23.7%    +23.9%     +0.1%
      81b6befa
  9. 07 Jan, 2014 1 commit
  10. 04 Jan, 2014 1 commit
  11. 03 Jan, 2014 1 commit
  12. 01 Jan, 2014 1 commit
  13. 31 Dec, 2013 1 commit
  14. 09 Dec, 2013 1 commit
  15. 04 Dec, 2013 2 commits
  16. 24 Nov, 2013 1 commit
  17. 15 Nov, 2013 1 commit
    • Duncan Coutts's avatar
      Fix up test topHandler03 by ignoring unhelpful shell output · 14527c19
      Duncan Coutts authored
      Shells! Grrrr. Some shells print out a message if your program terminates with
      a signal. In the case of topHandler03 which deliberately exits with signal 15
      SIGTERM, some shells were printing "Terminated" to stdout.
      
      Why the testsuite driver goes via a shell I do not know (it also messes up the
      exit codes for signals).
      14527c19
  18. 14 Nov, 2013 2 commits
    • Duncan Coutts's avatar
      Add tests for the top level exception handler · 2ec9734d
      Duncan Coutts authored
      The top level exception handler is wrapped around main, and FFI exports.
      It handles exceptions that are not otherwise caught in user code. For
      most exception is just prints them, but handles a few specially,
      including ExitCode and UserInterrupt.
      
      On Unix it installs a signal handler for SIGINT to translate it into a
      UserInterrupt async exception.
      
      So we test that:
      
      1. receiving SIGINT does trigger a UserInterrupt async exception
      2. an unhandled UserInterrupt makes us kill ourselves with SIGINT
      3. an unhandled ExitFailure (-sig) makes us kill ourselves with sig
      2ec9734d
    • Duncan Coutts's avatar
      Handle ExitFailure (-sig) by killing process with signal · 643f07c6
      Duncan Coutts authored
      On Unix we now use negative exit codes in ExitFailure to indicate that a
      process exited due to a signal. This patch implements the case for when
      a ExitFailure exception propagates out of the top of main (and is
      handled by the topHandler).
      
      For a negative ExitFailure code, we try to kill the process using that
      signal (the details of that are handled by shutdownHaskellAndSignal from
      the RTS). For an exit code outside the valid ranges, we use 0xff.
      643f07c6
  19. 08 Nov, 2013 1 commit
  20. 07 Nov, 2013 2 commits
    • Merijn Verstraaten's avatar
      *Really* RTS crash due to bad coercion. · 33ed16bd
      Merijn Verstraaten authored
      
      
      Previous commit only moved the coercion mistake to a different
      architecture (i.e. underflow could still occur on platforms where Int
      is smaller than CInt). This patch should definitively deal with all
      possible combinations.
      Signed-off-by: thoughtpolice's avatarAustin Seipp <aseipp@pobox.com>
      33ed16bd
    • Merijn Verstraaten's avatar
      Fix OSX RTS crash due to bad coercion. · 00e04e81
      Merijn Verstraaten authored
      
      
      The code coerces Int to CInt, which causes an overflow if Int is bigger
      than CInt (for example, Int 64bit, CInt 32 bit). This results in a
      negative value being passed to c_poll.
      
      On Linux all negative values are treated as infinite timeouts, which
      gives subtly wrong semantics, but is unlikely to produce actual bugs.
      
      OSX insists that only -1 is a valid value for infinite timeout, any
      other negative timeout is treated as an invalid argument.
      
      This patch replaces the c_poll call with a loop that handles the
      overflow gracefully by chaining multiple calls to poll to obtain the
      proper semantics.
      Signed-off-by: thoughtpolice's avatarAustin Seipp <aseipp@pobox.com>
      00e04e81
  21. 01 Nov, 2013 3 commits
  22. 31 Oct, 2013 1 commit
    • eir@cis.upenn.edu's avatar
      Add new module Data.Type.Bool, defining &&, || and Not. · 9265c889
      eir@cis.upenn.edu authored
      This change was necessary given the instances for (==) in
      Data.Type.Equality. These need conjunction, and a local
      definition of conjunction doesn't work if a client is reasoning
      about equality. Both the client and the library need the
      same conjunction, so that is what Data.Type.Bool provides.
      9265c889
  23. 28 Oct, 2013 3 commits