1. 25 Sep, 2017 10 commits
    • Moritz Angermann's avatar
      Adds mingw64 to the valid GHC OSs. · abca29f3
      Moritz Angermann authored
      This fixes hadrian#420 (https://github.com/snowleopard/hadrian/issues/420)
      specifically the "Unknown OS mingw64".
      Reviewers: austin, hvr, bgamari, Phyx
      Reviewed By: Phyx
      Subscribers: rwbarton, thomie, erikd
      Differential Revision: https://phabricator.haskell.org/D4016
    • Tamar Christina's avatar
      Fix the searching of target AR tool · c839c57e
      Tamar Christina authored
      Ar was being checked twice prior to D3883 where I removed one of the checks
      because the converted path was being overridden after the check because of
      the second check for Ar. However the one in configure.ac was a target check
      so I'm changing the path check to a target check now.
      Test Plan: ./configure
      Reviewers: angerman, austin, hvr, bgamari
      Reviewed By: bgamari
      Subscribers: rwbarton, thomie, erikd
      GHC Trac Issues: #14274
      Differential Revision: https://phabricator.haskell.org/D4020
    • Tamar Christina's avatar
      Ensure text mode when calling debug functions · 2b2595e0
      Tamar Christina authored
      Something seems to be changing stderr into binary mode,
      so when the `traceIO` is called, the C code that ultimately
      calls `vfprintf` is using a binary mode handle.
      This causes newlines not to be encoded properly.
      The patch ensures we're in text mode when writing the debug
      messages (% interleaving as it's not thread safe at all) and restores
      the previous mode when done.
      I'm slightly concerned about the performance implications of writing
      large dumps out in text mode, but I think the current behavior is not
      intended as I cannot see any of the printing code setting the mode of
      the std handles.
      Test Plan: ./validate
      Reviewers: austin, bgamari, erikd, simonmar
      Reviewed By: bgamari
      Subscribers: rwbarton, thomie
      GHC Trac Issues: #14188
      Differential Revision: https://phabricator.haskell.org/D4018
    • Ryan Scott's avatar
      Bump template-haskell to · 3804a7eb
      Ryan Scott authored
      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
    • Ryan Scott's avatar
      Document how GHC disambiguates between multiple COMPLETE sets · 0e60cc18
      Ryan Scott authored
      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
    • 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.
    • 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
    • Simon Peyton Jones's avatar
      Comments only · 3b4833a2
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
      Make pprQuotedList use fsep not hsep · 7721e8ee
      Simon Peyton Jones authored
      This just does wrapping on very long lists
    • 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
  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>
    • 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.
  7. 19 Sep, 2017 3 commits
    • Tao He's avatar
      Make zipWith and zipWith3 inlinable. · 11d9615e
      Tao He authored
      Reviewers: austin, hvr, bgamari, dfeuer
      Reviewed By: dfeuer
      Subscribers: rwbarton, thomie
      GHC Trac Issues: #14224
      Differential Revision: https://phabricator.haskell.org/D3986
    • ocheron's avatar
      Restore function powModSecInteger · 0aba999f
      ocheron authored
      The function existed in integer-gmp- but was removed as
      part of integer-gmp2 rewrite in #9281.  This is to bring it back.
      Test Plan: Case integerGmpInternals, with GMP 4.3.2 and GMP 6.1.2
      Reviewers: austin, hvr, goldfire, bgamari
      Reviewed By: bgamari
      Subscribers: rwbarton, thomie
      Differential Revision: https://phabricator.haskell.org/D3947
    • Ben Gamari's avatar
      cmm/CBE: Collapse blocks equivalent up to alpha renaming of local registers · 7920a7d9
      Ben Gamari authored
      As noted in #14226, the common block elimination pass currently
      implements an extremely strict equivalence relation, demanding that two
      blocks are equivalent including the names of their local registers. This
      is quite restrictive and severely hampers the effectiveness of the pass.
      Here we allow the CBE pass to collapse blocks which are equivalent up to
      alpha renaming of locally-bound local registers. This is completely safe
      and catches many more duplicate blocks.
      Test Plan: Validate
      Reviewers: austin, simonmar, michalt
      Reviewed By: michalt
      Subscribers: rwbarton, thomie
      GHC Trac Issues: #14226
      Differential Revision: https://phabricator.haskell.org/D3973