1. 03 Aug, 2016 5 commits
  2. 02 Aug, 2016 1 commit
  3. 01 Aug, 2016 3 commits
  4. 30 Jul, 2016 1 commit
    • alexbiehl's avatar
      Add atomic operations to package.conf.in · c06e3f46
      alexbiehl authored
      This patch resulted from the discussion in D2431 and should be merged
      first.
      
      @erikd and @trommler reported errors like
      
      ```
      /home/erikd/Git/ghc-upstream/rts/dist/build/libHSrts_thr.a(PrimOps.thr_o
      ): In function `c14_info':
      (.text+0x2b8): undefined reference to `hs_cmpxchg32'
      /home/erikd/Git/ghc-upstream/rts/dist/build/libHSrts_thr.a(PrimOps.thr_o
      ): In function `c5e_info':
      (.text+0xac4): undefined reference to `hs_cmpxchg32'
      /home/erikd/Git/ghc-upstream/rts/dist/build/libHSrts_thr.a(PrimOps.thr_o
      ): In function `c8b_info':
      (.text+0x1198): undefined reference to `hs_cmpxchg32'
      /home/erikd/Git/ghc-upstream/rts/dist/build/libHSrts_thr.a(PrimOps.thr_o
      ): In function `c8b_info':
      (.text+0x122c): undefined reference to `hs_cmpxchg32'
      /home/erikd/Git/ghc-upstream/rts/dist/build/libHSrts_thr.a(PrimOps.thr_o
      ): In function `c8b_info':
      (.text+0x12ec): undefined reference to `hs_cmpxchg32'
      ```
      
      on PowerPC. @simonmar suggests to add the specific exports to
      `rts/package.conf.in`. This patch does exactly that, including all
      other atomic ops as they probably (maybe someone can verify?) suffer
      from the same problem on PPC.
      
      Test Plan: Please make sure to build on PPC.
      
      Reviewers: erikd, austin, bgamari, simonmar, trommler
      
      Reviewed By: erikd, trommler
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2435
      c06e3f46
  5. 28 Jul, 2016 1 commit
  6. 27 Jul, 2016 2 commits
  7. 26 Jul, 2016 4 commits
  8. 25 Jul, 2016 1 commit
  9. 24 Jul, 2016 1 commit
  10. 22 Jul, 2016 8 commits
  11. 21 Jul, 2016 8 commits
    • Gabor Greif's avatar
      More typos in comments · bbf36f89
      Gabor Greif authored
      bbf36f89
    • Gabor Greif's avatar
      e710f8f5
    • Ömer Sinan Ağacan's avatar
      Fix and document Unique generation for sum TyCon and DataCons · 8265c783
      Ömer Sinan Ağacan authored
      Test Plan: validate
      
      Reviewers: bgamari, austin
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2420
      8265c783
    • Ömer Sinan Ağacan's avatar
      Bump Haddock submodule · 6a4dc891
      Ömer Sinan Ağacan authored
      6a4dc891
    • Simon Peyton Jones's avatar
    • Simon Peyton Jones's avatar
      9c54185b
    • Simon Peyton Jones's avatar
      Comments only · a09c0e3e
      Simon Peyton Jones authored
      a09c0e3e
    • Ömer Sinan Ağacan's avatar
      Implement unboxed sum primitive type · 714bebff
      Ömer Sinan Ağacan authored
      Summary:
      This patch implements primitive unboxed sum types, as described in
      https://ghc.haskell.org/trac/ghc/wiki/UnpackedSumTypes.
      
      Main changes are:
      
      - Add new syntax for unboxed sums types, terms and patterns. Hidden
        behind `-XUnboxedSums`.
      
      - Add unlifted unboxed sum type constructors and data constructors,
        extend type and pattern checkers and desugarer.
      
      - Add new RuntimeRep for unboxed sums.
      
      - Extend unarise pass to translate unboxed sums to unboxed tuples right
        before code generation.
      
      - Add `StgRubbishArg` to `StgArg`, and a new type `CmmArg` for better
        code generation when sum values are involved.
      
      - Add user manual section for unboxed sums.
      
      Some other changes:
      
      - Generalize `UbxTupleRep` to `MultiRep` and `UbxTupAlt` to
        `MultiValAlt` to be able to use those with both sums and tuples.
      
      - Don't use `tyConPrimRep` in `isVoidTy`: `tyConPrimRep` is really
        wrong, given an `Any` `TyCon`, there's no way to tell what its kind
        is, but `kindPrimRep` and in turn `tyConPrimRep` returns `PtrRep`.
      
      - Fix some bugs on the way: #12375.
      
      Not included in this patch:
      
      - Update Haddock for new the new unboxed sum syntax.
      
      - `TemplateHaskell` support is left as future work.
      
      For reviewers:
      
      - Front-end code is mostly trivial and adapted from unboxed tuple code
        for type checking, pattern checking, renaming, desugaring etc.
      
      - Main translation routines are in `RepType` and `UnariseStg`.
        Documentation in `UnariseStg` should be enough for understanding
        what's going on.
      
      Credits:
      
      - Johan Tibell wrote the initial front-end and interface file
        extensions.
      
      - Simon Peyton Jones reviewed this patch many times, wrote some code,
        and helped with debugging.
      
      Reviewers: bgamari, alanz, goldfire, RyanGlScott, simonpj, austin,
                 simonmar, hvr, erikd
      
      Reviewed By: simonpj
      
      Subscribers: Iceland_jack, ggreif, ezyang, RyanGlScott, goldfire,
                   thomie, mpickering
      
      Differential Revision: https://phabricator.haskell.org/D2259
      714bebff
  12. 20 Jul, 2016 5 commits
    • Ben Gamari's avatar
      Revert "Clean up interaction between name cache and built-in syntax" · 83e4f495
      Ben Gamari authored
      This reverts commit 9513fe6b.
      
      Sadly this broke with -DDEBUG.
      83e4f495
    • gcampax's avatar
      Compact Regions · cf989ffe
      gcampax authored
      This brings in initial support for compact regions, as described in the
      ICFP 2015 paper "Efficient Communication and Collection with Compact
      Normal Forms" (Edward Z. Yang et.al.) and implemented by Giovanni
      Campagna.
      
      Some things may change before the 8.2 release, but I (Simon M.) wanted
      to get the main patch committed so that we can iterate.
      
      What documentation there is is in the Data.Compact module in the new
      compact package.  We'll need to extend and polish the documentation
      before the release.
      
      Test Plan:
      validate
      (new test cases included)
      
      Reviewers: ezyang, simonmar, hvr, bgamari, austin
      
      Subscribers: vikraman, Yuras, RyanGlScott, qnikst, mboes, facundominguez, rrnewton, thomie, erikd
      
      Differential Revision: https://phabricator.haskell.org/D1264
      
      GHC Trac Issues: #11493
      cf989ffe
    • Ben Gamari's avatar
      Add another testcase for #12082 · 93acc02f
      Ben Gamari authored
      Test Plan: Validate, should pass.
      
      Reviewers: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2399
      
      GHC Trac Issues: #12082
      93acc02f
    • Ben Gamari's avatar
      testsuite: Add regression test for #12381 · a4f2b766
      Ben Gamari authored
      Test Plan: Validate
      
      Reviewers: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2408
      
      GHC Trac Issues: #12381, #11348
      a4f2b766
    • Ben Gamari's avatar
      Clean up interaction between name cache and built-in syntax · 9513fe6b
      Ben Gamari authored
      This cleans up various aspects of the handling of built-in syntax in the
      original name cache (hopefully resulting in a nice reduction in compiler
      allocations),
      
        * Remove tuple types from original name cache: There is really no
          reason for these to be in the name cache since we already handle
          them specially in interface files to ensure that we can resolve them
          directly to Names, avoiding extraneous name cache lookups.
      
        * Sadly it's not possible to remove all traces of tuples from the
          name cache, however. Namely we need to keep the tuple type
          representations in since otherwise they would need to be wired-in
      
        * Remove the special cases for (:), [], and (##) in isBuiltInOcc_maybe
          and rename it to isTupleOcc_maybe
      
        * Split lookupOrigNameCache into two variants,
      
           * lookupOrigNameCache': Merely looks up an OccName in the original
             name cache, making no attempt to resolve tuples
      
           * lookupOrigNameCache: Like the above but handles tuples as well.
             This is given the un-primed name since it does the "obvious"
             thing from the perspective of an API user, who knows nothing of
             our special treatment of tuples.
      
      Arriving at this design took a significant amount of iteration. The
      trail of debris leading here can be found in #11357.
      
      Thanks to ezyang and Simon for all of their help in coming to this
      solution.
      
      Test Plan: Validate
      
      Reviewers: goldfire, simonpj, austin
      
      Reviewed By: simonpj
      
      Subscribers: thomie, ezyang
      
      Differential Revision: https://phabricator.haskell.org/D2414
      
      GHC Trac Issues: #11357
      9513fe6b