1. 25 Sep, 2017 7 commits
    • Ryan Scott's avatar
      Bump template-haskell to 2.13.0.0 · 3804a7eb
      Ryan Scott authored
      Summary:
      Now that `MonadIO` is a superclass of `Quasi`, it's a good
      time to bump the `template-haskell` version so that libraries can
      accommodate the change using CPP.
      
      Test Plan: ./validate
      
      Reviewers: bgamari, austin
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D4007
      3804a7eb
    • Ryan Scott's avatar
      Document how GHC disambiguates between multiple COMPLETE sets · 0e60cc18
      Ryan Scott authored
      Summary:
      Up until now, the knowledge of how GHC chooses which
      `COMPLETE` set to use in the presence of multiple applicable
      `COMPLETE` sets for a single data type constructor was only
      documented in the GHC wiki. But this really should be advertised to
      anyone who uses `COMPLETE` pragmas heavily, so per SPJ's advice in
      https://ghc.haskell.org/trac/ghc/ticket/14253#comment:10, this adds
      this wisdom to the GHC users' guide.
      
      Test Plan: Read it
      
      Reviewers: austin, bgamari
      
      Subscribers: mpickering, rwbarton, thomie
      
      GHC Trac Issues: #14253
      
      Differential Revision: https://phabricator.haskell.org/D4005
      0e60cc18
    • Simon Peyton Jones's avatar
      Fix solving of implicit parameter constraints · abed9bf5
      Simon Peyton Jones authored
      Trac #14218 showed that we were not solving implicit-parameter
      constraints correctly.  In particular,
      
      - A tuple constraint could "hide" an implicit-parameter wanted
        constraint, and that in turn could that we solved it from the
        wrong implicit-parameter binding.
      
      - As a special case the HasCallStack constraint (which is just
        short for (IP "callStack" CallStack), was getting mis-solved.
      
      The big change is to arrange that, in TcSMonad.findDict when looking
      for a dictionary, either when looking for a matching inert or solved
      dictionary, we fail for
      
        - Tuples that are hiding implicit parameters
          See Note [Tuples hiding implicit parameters]
      
        - HasCallStack constraints where we have not yet pushed
          on the call-site info
          See Note [Solving CallStack constraints]
      
      I also did a little refactoring
      
      * Move naturallyCoherentClass from Class to TcInteract, its sole
        use site.  Class.hs seems like the wrong place.  (And I also
        do not understand the reason that we need the eq/Coercible/
        Typable stuff in this predicate, but I'll tackle that separately.)
      
      * Move the code that pushes call-site info onto a call stack
        from the "interact" part to the "canonicalise" part of the solver.
      abed9bf5
    • Simon Peyton Jones's avatar
      Improve type-error reporting · 1b476ab5
      Simon Peyton Jones authored
      This patch does two things:
      
      * When reporting a hole, we now include its kind if the
        kind is not just '*'.  This addresses Trac #14265
      
      * When reporting things like "'a' is a rigid type varaible
        bound by ...", this patch arranges to group the type variables
        together, so we don't repeat the "bound by..." stuff endlessly
      1b476ab5
    • Simon Peyton Jones's avatar
      Comments only · 3b4833a2
      Simon Peyton Jones authored
      3b4833a2
    • Simon Peyton Jones's avatar
      Make pprQuotedList use fsep not hsep · 7721e8ee
      Simon Peyton Jones authored
      This just does wrapping on very long lists
      7721e8ee
    • Simon Peyton Jones's avatar
      Deal with large extra-contraints wildcards · 3c74a512
      Simon Peyton Jones authored
      For reasons explained in TcHsType
      Note [Extra-constraint holes in partial type signatures],
      if we had
        f :: (_) => blahs
      and the '_' was filled in by more than a 62-tuple of contraints,
      GHC crashed.
      
      The same Note explains the hacky solution I have adopted to
      evade this.  Maybe there is some better way, but I couldn't
      see one that didn't involve a great deal of work. And the problem
      is a very narrow one!  If the hack bites us we'll need to think
      again.
      3c74a512
  2. 24 Sep, 2017 3 commits
  3. 23 Sep, 2017 2 commits
  4. 22 Sep, 2017 7 commits
  5. 21 Sep, 2017 13 commits
  6. 20 Sep, 2017 2 commits
    • Sergei Trofimovich's avatar
      aclocal.m4: call cygpath on mingw32 only · d7705f2f
      Sergei Trofimovich authored
      
      
      The only reason I noticed is warning these lines on linux:
      
      ```
      $ ./configure --target=sparc-unknown-linux-gnu
      ...
      ./configure: line 9708: cygpath: command not found
      ./configure: line 9708: ArCmd: command not found
      ```
      
      POSIX shell syntax requires no spaces in assignments.
      Fixed guarding condition while at it.
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      d7705f2f
    • Herbert Valerio Riedel's avatar
      Add 'stm' package to the global package database · 02ff7056
      Herbert Valerio Riedel authored
      This is a preparation for `haskeline` picking up a dependency on `stm`
      real soon now. See https://github.com/judah/haskeline/pull/61 for details.
      
      If we figure out a way to not bundle the libraries depended upon by the
      GHCi executable in the global package database (see #8919 for the original
      reason why we had to start bundling terminfo/haskeline in the first place)
      we can get rid of `stm` again...
      
      On the bright side, we were able to avoid uploading new `stm` releases for
      over two years already, so it shouldn't cause too much trouble if GHC imposes
      a strong preference on the `stm` package's version (this most likely will
      mostly affect Linux distributions & similiar).
      
      While at it, this also update the stm submodule to include relaxed
      bounds to allow the upcoming base-4.11 version.
      02ff7056
  7. 19 Sep, 2017 6 commits