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. 24 Oct, 2015 1 commit
  2. 23 Oct, 2015 1 commit
  3. 19 Oct, 2015 1 commit
    • Facundo Domínguez's avatar
      base: Have the argument of mask restore the state. · 2b25a589
      Facundo Domínguez authored
      The implementation of `mask` and `uninterruptibleMask` assumed so far
      that the restore argument would be called in a context with the same
      masking state as that set by `mask` or `uninterruptibleMask`.
      
      This patch has the restore argument restore the masking, whatever the
      current masking state is.
      
      Test Plan: validate
      
      Reviewers: simonmar, hvr, austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie, qnikst
      
      Differential Revision: https://phabricator.haskell.org/D1327
      
      GHC Trac Issues: #10149
      2b25a589
  4. 18 Oct, 2015 2 commits
  5. 17 Oct, 2015 1 commit
  6. 16 Oct, 2015 4 commits
  7. 15 Oct, 2015 2 commits
    • Edward Z. Yang's avatar
      Rename package key to unit ID, and installed package ID to component ID. · b92a51f5
      Edward Z. Yang authored
      Comes with Haddock submodule update.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      b92a51f5
    • Edward Z. Yang's avatar
      Update Cabal to HEAD, IPID renamed to Component ID. · 5b0191f7
      Edward Z. Yang authored
      This commit contains a Cabal submodule update which unifies installed
      package IDs and package keys under a single notion, a Component ID.
      We update GHC to keep follow this unification.  However, this commit
      does NOT rename installed package ID to component ID and package key to
      unit ID; the plan is to do that in a companion commit.
      
          - Compiler info now has "Requires unified installed package IDs"
      
          - 'exposed' is now expected to contain unit keys, not IPIDs.
      
          - Shadowing is no more.  We now just have a very simple strategy
            to deal with duplicate unit keys in combined package databases:
            if their ABIs are the same, use the latest one; otherwise error.
            Package databases maintain the invariant that there can only
            be one entry of a unit ID.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      
      Test Plan: validate
      
      Reviewers: simonpj, austin, bgamari, hvr, goldfire
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1184
      
      GHC Trac Issues: #10714
      5b0191f7
  8. 13 Oct, 2015 3 commits
  9. 12 Oct, 2015 1 commit
    • Herbert Valerio Riedel's avatar
      base: MRP-refactoring of AMP instances · e737a512
      Herbert Valerio Riedel authored
      This refactors `(>>)`/`(*>)`/`return`/`pure` methods into normal form.
      
      The redundant explicit `return` method definitions are dropped
      altogether.
      
      The explicit `(>>) = (*>)` definitions can't be removed yet, as
      the default implementation of `(>>)` is still in terms of `(*>)`
      (even though that should have been changed according to the AMP but
      wasn't -- see note in GHC.Base for details why this had to be postponed)
      
      A nofib comparision shows this refactoring to result in minor runtime
      improvements (unless those are within normal measurement fluctuations):
      
              Program           Size    Allocs   Runtime   Elapsed  TotalMem
        -------------------------------------------------------------------------
                  Min          -0.0%     -0.0%     -1.6%     -3.9%     -1.1%
                  Max          -0.0%     +0.0%     +0.5%     +0.5%      0.0%
        Geometric Mean         -0.0%     -0.0%     -0.4%     -0.5%     -0.0%
      
      Full `nofib` report at https://phabricator.haskell.org/P68
      
      Reviewers: quchen, alanz, austin, #core_libraries_committee, bgamari
      
      Reviewed By: bgamari
      
      Differential Revision: https://phabricator.haskell.org/D1316
      e737a512
  10. 10 Oct, 2015 1 commit
    • Ben Gamari's avatar
      Keep `shift{L,R}` on `Integer` from segfaulting · 182c44da
      Ben Gamari authored
      This can happen because the underlying primitive operations in
      `integer-gmp` don't support negative shift-amounts, and since
      `integer-gmp` can't throw proper exceptions and just provides a
      low-level API, it simply segfaults instead...
      
      This patch simply removes the `shift{L,R}` method definitions (and
      defines `unsafeShift{L,R}` instead) whose default-impls fallback on
      using `shift` which properly handles negative shift arguments.
      
      This addresses #10571
      
      Test Plan: harbormaster can do it
      
      Reviewers: hvr, austin, rwbarton
      
      Subscribers: rwbarton, thomie, bgamari
      
      Differential Revision: https://phabricator.haskell.org/D1018
      
      GHC Trac Issues: #10571
      182c44da
  11. 07 Oct, 2015 1 commit
  12. 03 Oct, 2015 1 commit
    • Ryan Scott's avatar
      Make GHC generics capable of handling unboxed types · 6cde981a
      Ryan Scott authored
      This adds a data family (`URec`) and six data family instances (`UAddr`,
      `UChar`, `UDouble`, `UFloat`, `UInt`, and `UWord`) which a `deriving
      Generic(1)` clause will generate if it sees `Addr#`, `Char#`, `Double#`,
      `Float#`, `Int#`, or `Word#`, respectively. The programmer can then
      provide instances for these data family instances to provide custom
      implementations for unboxed types, similar to how derived `Eq`, `Ord`,
      and `Show` instances currently special-case unboxed types.
      
      Fixes #10868.
      
      Test Plan: ./validate
      
      Reviewers: goldfire, dreixel, bgamari, austin, hvr, kosmikus
      
      Reviewed By: dreixel, kosmikus
      
      Subscribers: simonpj, thomie
      
      Differential Revision: https://phabricator.haskell.org/D1239
      
      GHC Trac Issues: #10868
      6cde981a
  13. 02 Oct, 2015 4 commits
    • Andreas Schwab's avatar
      Fix signature of atomic builtins · e3d2bab8
      Andreas Schwab authored
      This patch is due to Andreas Schwab.
      
      This fixes #10926, which reports (on AArch64) errors of the form,
      
      ```
      /tmp/ghc1492_0/ghc_1.hc:2844:25: warning: passing argument 1 of
      'hs_atomic_xor64' makes pointer from integer without a cast
      [-Wint-conversion]
           _c1Ho = hs_atomic_xor64((*Sp) + (((Sp[1]) << 0x3UL) + 0x10UL), Sp[2]);
                                   ^
      
      In file included from
      /home/abuild/rpmbuild/BUILD/ghc-7.10.2/includes/Stg.h:273:0: 0,
                       from /tmp/ghc1492_0/ghc_1.hc:3:
      
      /home/abuild/rpmbuild/BUILD/ghc-7.10.2/includes/stg/Prim.h:41:11:
           note: expected 'volatile StgWord64 *
                 {aka volatile long unsigned int *}'
                 but argument is of type 'long unsigned int'
           StgWord64 hs_atomic_xor64(volatile StgWord64 *x, StgWord64 val);
                     ^
      ```
      
      Test Plan: Validate
      
      Reviewers: austin, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1300
      
      GHC Trac Issues: #10926
      e3d2bab8
    • Ben Gamari's avatar
      Move CallStack back to base · 74424346
      Ben Gamari authored
      CallStack requires tuples, instances of which are defined in GHC.Tuple.
      Unfortunately the change made in D757 to the `Typeable` deriving
      mechanism means that `GHC.Tuple` must import `GHC.Types` for types
      necessary to generate type representations.  This results in a cycle.
      
      Test Plan: Validate
      
      Reviewers: gridaphobe, austin, hvr
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1298
      74424346
    • Matthias Fischmann's avatar
      Document peculiarities of `traceM`. · 57e3742c
      Matthias Fischmann authored
      Reviewers: bgamari, hvr, austin
      
      Reviewed By: bgamari, hvr, austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1289
      57e3742c
    • Herbert Valerio Riedel's avatar
      Add Data.Semigroup and Data.List.NonEmpty (re #10365) · 03b38042
      Herbert Valerio Riedel authored
      This implements phase 1 of the semigroup-as-monoid-superclass
      proposal (https://ghc.haskell.org/wiki/Proposal/SemigroupMonoid).
      
      The modules were migrated from the `semigroups-0.17` release mostly
      as-is, except for dropping several trivial `{-# INLINE #-}`s,
      removing CPP usage, and instances for types & classes provided
      outside of `base` (e.g. `containers`, `deepseq`, `hashable`, `tagged`,
      `bytestring`, `text`)
      
      Differential Revision: https://phabricator.haskell.org/D1284
      03b38042
  14. 28 Sep, 2015 1 commit
    • Joachim Breitner's avatar
      Allow enumDeltaIntegerFB to be inlined · 78053f44
      Joachim Breitner authored
      The function is very small and the compiler should be at liberty to
      inline it. But it is recursive, so it did not do it before. By applying
      the usual transformation with a local recursive function, GHC can now
      inline it, producing the loop that one would expect.
      78053f44
  15. 25 Sep, 2015 1 commit
    • Ben Gamari's avatar
      Weak: Don't require wrapping/unwrapping of finalizers · fb409264
      Ben Gamari authored
      To quote Simon Marlow,
      
          We don't expect users to ever write code that uses mkWeak# or
          finalizeWeak#, we have safe interfaces to these. Let's document the type
          unsafety and fix the problem with () without introducing any overhead.
      
      Updates stm submodule.
      fb409264
  16. 24 Sep, 2015 1 commit
  17. 23 Sep, 2015 3 commits
  18. 22 Sep, 2015 2 commits
  19. 17 Sep, 2015 2 commits
    • thomie's avatar
      Docs: make sure all libs are included in index.html (#10879) · 48746fff
      thomie authored
      During the build, when HADDOCK_DOCS=YES, the command 'cd libraries && sh
      gen_contents_index --intree' is run, which calls haddock to generate the
      haddock index at 'libraries/dist-haddock/index.html'.
      
      What it did before was check the ./packages file for all libraries. The
      problem is that 'base' and 'ghc-prim' were folded into the main repo
      some time ago, hence don't have an entry in the ./packages file anymore.
      As a result, 'base' and 'ghc-prim' were missing from the index.html
      file.
      
      It now simply runs haddock on all the all the `.haddock` files in the
      libraries directory.
      
      The only risk is that this could include the extra libraries in the
      index.html, if you ever built them in the past (with
      BUILD_EXTRA_PKGS=YES), even though now you want to exclude them (with
      BUILD_EXTRA_PKGS=NO). gen_contents_index doesn't have access to build
      system variables though (PACKAGES_STAGE1+PACKAGES_STAGE2), so fixing
      this would be a little bit fiddly.
      
      Test Plan:
      'make libraries/dist-haddock/index.html && grep -q base
      libraries/dist-haddock/index.html && echo ok'
      
      Reviewed by: austin
      
      Differential Revision: https://phabricator.haskell.org/D1247
      48746fff
    • Ryan Scott's avatar
      Add namePackage function to template-haskell · 77662e13
      Ryan Scott authored
      Currently there exists a nameBase function (for retrieving a Name's OccName)
      and a nameModule function (for retrieving a Name's ModName), but there is no
      counterpart for PkgNames.
      
      This would be useful for implementing Template Haskell features which need
      to have easy access to a Name's package (e.g., automatically derived Lift
      instances).
      
      Reviewed By: goldfire, austin, thomie
      
      Differential Revision: https://phabricator.haskell.org/D1237
      77662e13
  20. 12 Sep, 2015 2 commits
  21. 08 Sep, 2015 1 commit
  22. 07 Sep, 2015 2 commits
    • Joachim Breitner's avatar
      Further simplify the story around minimum/maximum · c6b82e99
      Joachim Breitner authored
      After I have found out that I should look at -ddump-prep and not
      -ddump-core, I noticed that these days, GHC is perfectly capeable of
      turning (the equivalent) of foldl to (the equivalent) of foldl' if the
      operation in question is strict. So instead of using rewrite rules to
      rewrite maximum to a strictMaximum for certain types, we simply use
      SPECIALIZE.
      
      This also marks maximum/minimum as INLINEABLE, so that client code can
      get similar specializations, hopefully even automatically. And inded,
      minimum applied to [Double] produces good code (although due to
      inlineing, not due to specialization, it seems).
      
      I checked (by looking at the core) that this still fixes #10788.
      
      Differential revision: https://phabricator.haskell.org/D1229
      c6b82e99
    • Joachim Breitner's avatar
      SPECIALIZE strictMinimum for Int and Integer · dc671a1c
      Joachim Breitner authored
      This fixes a regression reported in #10788, where due to less inlining
      compared to earlier versions, we’d get worse code. With the SPECIALIZE,
      we get the good code, and moreover, the good code is in List.hs and
      _not_ inlined to the use site, so smaller code size and less compilation
      time.
      dc671a1c
  23. 04 Sep, 2015 1 commit
    • Joachim Breitner's avatar
      Make Data.List.foldr1 inline · 85915e9b
      Joachim Breitner authored
      Previously, foldr1 would be defiend recursively and thus not inline.
      This is bad, for example, when maximumBy has a strict comparison
      function: Before the BBP, it was implemented via foldl1, which inlined
      and yielded good code. With BBP, it goes via foldr1, so we better inline
      this as well. Fixes #10830.
      
      Differential Revision: https://phabricator.haskell.org/D1205
      85915e9b
  24. 03 Sep, 2015 1 commit