1. 14 Dec, 2015 3 commits
  2. 13 Dec, 2015 2 commits
  3. 12 Dec, 2015 11 commits
  4. 11 Dec, 2015 13 commits
    • Austin Seipp's avatar
      rm rae.txt · a459451f
      Austin Seipp authored
      Signed-off-by: default avatarAustin Seipp <austin@well-typed.com>
      a459451f
    • Austin Seipp's avatar
      b5d5d831
    • Austin Seipp's avatar
      haddock: Fix submodule commit to point to ghc-head · a6e03945
      Austin Seipp authored
      67465497 accidentally pointed it to a branch (wip/rae-nokinds), before
      rebasing it onto ghc-head.
      Signed-off-by: default avatarAustin Seipp <austin@well-typed.com>
      a6e03945
    • Austin Seipp's avatar
      Revert README.md changes from 67465497 · 51831091
      Austin Seipp authored
      Signed-off-by: default avatarAustin Seipp <austin@well-typed.com>
      51831091
    • eir@cis.upenn.edu's avatar
      Add kind equalities to GHC. · 67465497
      eir@cis.upenn.edu authored
      This implements the ideas originally put forward in
      "System FC with Explicit Kind Equality" (ICFP'13).
      
      There are several noteworthy changes with this patch:
       * We now have casts in types. These change the kind
         of a type. See new constructor `CastTy`.
      
       * All types and all constructors can be promoted.
         This includes GADT constructors. GADT pattern matches
         take place in type family equations. In Core,
         types can now be applied to coercions via the
         `CoercionTy` constructor.
      
       * Coercions can now be heterogeneous, relating types
         of different kinds. A coercion proving `t1 :: k1 ~ t2 :: k2`
         proves both that `t1` and `t2` are the same and also that
         `k1` and `k2` are the same.
      
       * The `Coercion` type has been significantly enhanced.
         The documentation in `docs/core-spec/core-spec.pdf` reflects
         the new reality.
      
       * The type of `*` is now `*`. No more `BOX`.
      
       * Users can write explicit kind variables in their code,
         anywhere they can write type variables. For backward compatibility,
         automatic inference of kind-variable binding is still permitted.
      
       * The new extension `TypeInType` turns on the new user-facing
         features.
      
       * Type families and synonyms are now promoted to kinds. This causes
         trouble with parsing `*`, leading to the somewhat awkward new
         `HsAppsTy` constructor for `HsType`. This is dispatched with in
         the renamer, where the kind `*` can be told apart from a
         type-level multiplication operator. Without `-XTypeInType` the
         old behavior persists. With `-XTypeInType`, you need to import
         `Data.Kind` to get `*`, also known as `Type`.
      
       * The kind-checking algorithms in TcHsType have been significantly
         rewritten to allow for enhanced kinds.
      
       * The new features are still quite experimental and may be in flux.
      
       * TODO: Several open tickets: #11195, #11196, #11197, #11198, #11203.
      
       * TODO: Update user manual.
      
      Tickets addressed: #9017, #9173, #7961, #10524, #8566, #11142.
      Updates Haddock submodule.
      67465497
    • Adam Gundry's avatar
      Fix infix record field fixity (#11167 and #11173). · 6e56ac58
      Adam Gundry authored
      This extends D1585 with proper support for infix duplicate record
      fields.  In particular, it is now possible to declare record fields as
      infix in a module for which `DuplicateRecordFields` is enabled, fixity
      is looked up correctly and a readable (although unpleasant) error
      message is generated if multiple fields with different fixities are in
      scope.
      
      As a bonus, `DEPRECATED` and `WARNING` pragmas now work for
      duplicate record fields. The pragma applies to all fields with the
      given label.
      
      In addition, a couple of minor `DuplicateRecordFields` bugs, which were
      pinpointed by the `T11167_ambig` test case, are fixed by this patch:
      
        - Ambiguous infix fields can now be disambiguated by putting a type
          signature on the first argument
      
        - Polymorphic type constructor signatures (such as `ContT () IO a` in
          `T11167_ambig`) now work for disambiguation
      
      Parts of this patch are from D1585 authored by @KaneTW.
      
      Test Plan: New tests added.
      
      Reviewers: KaneTW, bgamari, austin
      
      Reviewed By: bgamari
      
      Subscribers: thomie, hvr
      
      Differential Revision: https://phabricator.haskell.org/D1600
      
      GHC Trac Issues: #11167, #11173
      6e56ac58
    • Ben Gamari's avatar
      testsuite: Only run recomp015 on ELF-based platforms · ceaf0f46
      Ben Gamari authored
      It fails on OS X with hundreds of messages of the form,
      ```
      ManySections.s:196576:10: error:
           error: mach-o section specifier uses an unknown section type
      .section s65525,"",@progbits
               ^
      
      ManySections.s:196579:10: error:
           error: mach-o section specifier uses an unknown section type
      .section s65526,"",@progbits
      ```
      
      It fails on Windows with messages of the form,
      ```
      ManySections.s:196579:10: error:
           Error: junk at the end of line, first unrecognized character is ','
      ```
      
      Test Plan: Validate
      
      Reviewers: hsyl20, thomie, austin
      
      Reviewed By: thomie, austin
      
      Differential Revision: https://phabricator.haskell.org/D1601
      
      GHC Trac Issues: #11022
      ceaf0f46
    • kanetw's avatar
      Improved data family export documentation · b1382481
      kanetw authored
      Reviewers: simonpj, austin, bgamari
      
      Reviewed By: simonpj
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1587
      
      GHC Trac Issues: #11164
      b1382481
    • Ben Gamari's avatar
      Removed colon append operation (fixes #10785) · c205aebd
      Ben Gamari authored
      Reviewers: jgertm, austin, thomie
      
      Reviewed By: thomie
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1164
      
      GHC Trac Issues: #10785
      c205aebd
    • Ben Gamari's avatar
      T4801: Update expected allocations on Darwin · 262954c2
      Ben Gamari authored
      262954c2
    • Ben Gamari's avatar
      Mark retc001 as broken on Darwin · 5447c20e
      Ben Gamari authored
      Due to #11204. A relatively easy fix would be to add a one second delay as
      described in the ticket, but this seems terrible.
      5447c20e
    • Ben Gamari's avatar
      T7478: Don't expect broken on Darwin · f7c17c84
      Ben Gamari authored
      This appears to be fixed as noted by goldfire on #7478 and my own
      experience.
      f7c17c84
    • Matthew Pickering's avatar
      Make sure PatSyns only get added once to tcg_patsyns · 41ef8f70
      Matthew Pickering authored
      Summary: Before, `PatSyn`s were getting added twice to `tcg_patsyns` so
      when inspecting afterwards there were duplicates in the list.
      This makes sure that only they only get added once.
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1597
      41ef8f70
  5. 10 Dec, 2015 2 commits
  6. 09 Dec, 2015 4 commits
    • Gabor Greif's avatar
      More typos in comments/docs · 688069ca
      Gabor Greif authored
      688069ca
    • Simon Peyton Jones's avatar
      Improve documentation for DeriveAnyClass · 83178931
      Simon Peyton Jones authored
      c.f. Trac #9968
      83178931
    • Simon Peyton Jones's avatar
      Comments only · e9ea0209
      Simon Peyton Jones authored
      e9ea0209
    • Simon Peyton Jones's avatar
      Fix DeriveAnyClass (Trac #9968) · af77089b
      Simon Peyton Jones authored
      The main issue concerned things like
      
         data T a = MkT a deriving( C Int )
      
      which is supposed to generate
      
         instance C Int (T a) where {}
      
      But the 'Int' argument (called cls_tys in the code) wasn't
      even being passed to inferConstraints and mk_data_eqn, so it
      really had no chance.   DeriveAnyClass came along after this
      code was written!
      
      Anyway I did quite a bit of tidying up in inferConstraints.
      
      Also I discovered that this case was not covered at all
      
         data T a b = MkT a b deriving( Bifunctor )
      
      What constraints should we generate for the instance context?
      We can deal with classes whose last arg has kind *, like Eq, Ord;
      or (* -> *), like Functor, Traversable.  But we really don't have
      a story for classes whose last arg has kind (* -> * -> *).
      
      So I augmented checkSideConditions to check for that and give
      a sensible error message.
      
      ToDo: update the user manual.
      af77089b
  7. 08 Dec, 2015 5 commits