1. 21 Oct, 2014 7 commits
  2. 20 Oct, 2014 7 commits
  3. 19 Oct, 2014 4 commits
  4. 18 Oct, 2014 3 commits
    • Herbert Valerio Riedel's avatar
      Generalise `Control.Monad.{foldM,foldM_}` to `Foldable` (#9586) · ce237451
      Herbert Valerio Riedel authored
      With this change `Control.Monad.foldM` becomes an alias for
      Reviewed By: austin, ekmett
      Differential Revision: https://phabricator.haskell.org/D251
    • mgmeier's avatar
      Remove obsolete Data.OldTypeable (#9639) · 7369d259
      mgmeier authored
      This finally removes the `Data.OldTypeable` module (which
      has been deprecated in 7.8), from `base`, compiler and testsuite.
      The deprecated `Typeable{1..7}` aliases in `Data.Typeable` are not
      removed yet in order to give existing code a bit more time to adapt.
      Reviewed By: hvr, dreixel
      Differential Revision: https://phabricator.haskell.org/D311
    • Herbert Valerio Riedel's avatar
      Implement optimized NCG `MO_Ctz W64` op for i386 (#9340) · 612f3d12
      Herbert Valerio Riedel authored
      This is an optimization to the CTZ primops introduced for #9340
      Previously we called out to `hs_ctz64`, but we can actually generate
      better hand-tuned code while avoiding the FFI ccall.
      With this patch, the code
        {-# LANGUAGE MagicHash #-}
        module TestClz0 where
        import GHC.Prim
        ctz64 :: Word64# -> Word#
        ctz64 x = ctz64# x
      results in the following assembler generated by NCG on i386:
            movl (%ebp),%eax
            movl 4(%ebp),%ecx
            movl %ecx,%edx
            orl %eax,%edx
            movl $64,%edx
            je _nAO
            bsf %ecx,%ecx
            addl $32,%ecx
            bsf %eax,%eax
            cmovne %eax,%ecx
            movl %ecx,%edx
            movl %edx,%esi
            addl $8,%ebp
            jmp *(%ebp)
      For comparision, here's what LLVM 3.4 currently generates:
        000000fc <TestClzz_ctzz64_info>:
          fc:   0f bc 45 04             bsf    0x4(%ebp),%eax
         100:   b9 20 00 00 00          mov    $0x20,%ecx
         105:   0f 45 c8                cmovne %eax,%ecx
         108:   83 c1 20                add    $0x20,%ecx
         10b:   8b 45 00                mov    0x0(%ebp),%eax
         10e:   8b 55 08                mov    0x8(%ebp),%edx
         111:   0f bc f0                bsf    %eax,%esi
         114:   85 c0                   test   %eax,%eax
         116:   0f 44 f1                cmove  %ecx,%esi
         119:   83 c5 08                add    $0x8,%ebp
         11c:   ff e2                   jmp    *%edx
      Reviewed By: austin
      Auditors: simonmar
      Differential Revision: https://phabricator.haskell.org/D163
  5. 17 Oct, 2014 3 commits
    • Austin Seipp's avatar
      rts: fix unused parameter warning · 1c35f9f1
      Austin Seipp authored
      If `pthread_setname_np` is not available, then a regular
      ./validate will fail due to warnings; the `name` parameter to
      `createOSThread` becomes unused.
      Signed-off-by: default avatarAustin Seipp <austin@well-typed.com>
      Test Plan: iiam
      Reviewers: simonmar, nomeata, jstolarek, hvr
      Reviewed By: nomeata, jstolarek, hvr
      Subscribers: nomeata, thomie, carter, ezyang, simonmar
      Differential Revision: https://phabricator.haskell.org/D344
    • Joachim Breitner's avatar
      Update T6056 output · 0e2bd03b
      Joachim Breitner authored
      according to travis (and proably Harbormaster), although I just cannot
      reproduce it here.
    • Joachim Breitner's avatar
      Avoid printing uniques in specialization rules · a477e811
      Joachim Breitner authored
      Akio found an avoidable cause of non-determinisim: The names of RULES
      generated by Specialise had uniques in them:
          "SPEC $cshowsPrec_a2QX @ [GHC.Types.Char]" [ALWAYS] forall ...
      By using showSDocForUser instead of showSDocDump when building the rule
      name, this is avoided:
          "SPEC $cshowsPrec @ [Char]" [ALWAYS] forall ...
      See #4012, comments 61ff.
  6. 16 Oct, 2014 3 commits
  7. 14 Oct, 2014 2 commits
  8. 13 Oct, 2014 7 commits
  9. 12 Oct, 2014 1 commit
  10. 11 Oct, 2014 3 commits