1. 23 Jun, 2017 5 commits
    • Matthew Pickering's avatar
      Use actual universal tvs in check for naughty record selectors · 90771209
      Matthew Pickering authored
      The naughty record selector check means to limit selectors which would
      lead to existential tyvars escaping their scope. With record pattern
      synonyms, there are situations where universal tyvars don't appear in
      the result type, for example:
      
      ```
      pattern ReadP :: Read a => a -> String
      pattern ReadP{readp} <- (read -> readp)
      ```
      
      This is a similar issue to #11224 where we assumed that we can decide
      which variables are universal and which are existential by the syntactic
      check of seeing which appear in the result type. The fix is to use
      `univ_tvs` from `conLikeFullSig` rather than the previous approximation.
      But we must also remember to apply `EqSpec`s so we use the free
      variables from `inst_tys` which is precisely `univ_tvs` with `EqSpecs`
      applied.
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3649
      90771209
    • Ryan Scott's avatar
      Fix pretty-printing of zero-argument lambda expressions · 3c4537ea
      Ryan Scott authored
      Using Template Haskell, one can construct lambda expressions with no
      arguments. The pretty-printer isn't aware of this fact, however. This
      changes that.
      
      Test Plan: make test TEST=T13856
      
      Reviewers: bgamari, austin, goldfire
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie
      
      GHC Trac Issues: #13856
      
      Differential Revision: https://phabricator.haskell.org/D3664
      3c4537ea
    • Ryan Scott's avatar
      Add fixity declaration for Data.List.NonEmpty.!! · 398a444b
      Ryan Scott authored
      We have `infixl 9 !!` for `Data.List.!!`, but not for
      `Data.List.NonEmpty.!!`. We ought to.
      
      Test Plan: Read it
      
      Reviewers: bgamari, austin, hvr
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3666
      398a444b
    • Ben Gamari's avatar
      testsuite: Fix cabal01 test · e13edee3
      Ben Gamari authored
      The other-modules field listed things that weren't in fact modules,
      causing this test to fail. See Cabal #4567.
      
      Test Plan: Validate
      
      Reviewers: hvr, austin
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3665
      e13edee3
    • Ben Gamari's avatar
      compiler: Eliminate pprTrace in SPT entry addition codepath · 84cf095d
      Ben Gamari authored
      Test Plan: Load program with StaticPointers into GHCi, ensure no
      tracing output makes it in.
      
      Reviewers: austin
      
      Subscribers: rwbarton, thomie, RyanGlScott
      
      GHC Trac Issues: #12356
      
      Differential Revision: https://phabricator.haskell.org/D3663
      84cf095d
  2. 22 Jun, 2017 2 commits
  3. 21 Jun, 2017 7 commits
  4. 20 Jun, 2017 1 commit
  5. 19 Jun, 2017 12 commits
  6. 18 Jun, 2017 4 commits
  7. 17 Jun, 2017 1 commit
    • Tamar Christina's avatar
      Remove the Windows GCC driver. · d6cecde5
      Tamar Christina authored
      Summary:
      This patch drops the GCC driver and instead moves
      the only remaining path that we need to keep for
      backwards compatibility to the settings file.
      
      It also generalizes the code that expands `$TopDir`
      so it can expand it within any location in the string
      and also changes it so `$TopDir` is expanded only
      after the words call because `$TopDir` can contains
      spaces which would be horribly broken.
      
      Test Plan: ./validate
      
      Reviewers: austin, hvr, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie, erikd
      
      GHC Trac Issues: #13709
      
      Differential Revision: https://phabricator.haskell.org/D3592
      d6cecde5
  8. 16 Jun, 2017 3 commits
    • Tamar Christina's avatar
      Provide way to build using existing C compiler on Windows. · fda094d0
      Tamar Christina authored
      Summary:
      There are various distros that build GHC using their own C compilers
      such as MSYS2. Currently they have to patch the build scripts everytime.
      
      This patch provides the configure argument `--enable-distro-toolchain`
      which allows one to build using any C compiler on the path.
      
      This is also useful for testing new versions of GCC.
      
      Test Plan:
      ./configure --enable-distro-toolchain && make - && make THREADS=9 test
      ./validate
      
      Reviewers: austin, hvr, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie, erikd, #ghc_windows_task_force
      
      GHC Trac Issues: #13792
      
      Differential Revision: https://phabricator.haskell.org/D3637
      fda094d0
    • Simon Peyton Jones's avatar
      Fix the treatment of 'closed' definitions · dc8e6861
      Simon Peyton Jones authored
      The IdBindingInfo field of ATcId serves two purposes
      
      - to control generalisation when we have -XMonoLocalBinds
      - to check for floatability when dealing with (static e)
      
      These are related, but not the same, and they'd becomme confused.
      Trac #13804 showed this up via an example like this:
      
        f periph = let sr :: forall a. [a] -> [a]
                       sr = if periph then reverse else id
      
                       sr2 = sr
                       -- The question: is sr2 generalised?
                       -- It should be, because sr has a type sig
                       -- even though it has periph free
                   in
                   (sr2 [True], sr2 "c")
      
      Here sr2 should be generalised, despite the free var 'periph'
      in 'sr' because 'sr' has a closed type signature.
      
      I documented all this very carefully this time, in TcRnTypes:
        Note [Meaning of IdBindingInfo]
        Note [Bindings with closed types: ClosedTypeId]
      dc8e6861
    • Ben Gamari's avatar
      base: Validate input in setNumCapabilities · 98494031
      Ben Gamari authored
      Test Plan: validate
      
      Reviewers: austin, hvr, erikd, simonmar
      
      Subscribers: rwbarton, thomie
      
      GHC Trac Issues: #13832
      
      Differential Revision: https://phabricator.haskell.org/D3652
      98494031
  9. 14 Jun, 2017 2 commits
  10. 13 Jun, 2017 1 commit
  11. 12 Jun, 2017 2 commits
    • sgillespie's avatar
      Make -w less aggressive (Trac #12056) · af9612bf
      sgillespie authored
      Previously -w combined with -Wunrecognised-warning-flags would not
      report unrecognized flags.
      
      Reviewers: austin, bgamari, dfeuer
      
      Reviewed By: bgamari
      
      Subscribers: dfeuer, rwbarton, thomie
      
      GHC Trac Issues: #12056
      
      Differential Revision: https://phabricator.haskell.org/D3581
      af9612bf
    • David Feuer's avatar
      Stop forcing everything in coreBindsSize · 2088d0be
      David Feuer authored
      `coreBindsSize` forced a ton of structure to stop space leaks.
      Reid Barton has done some work recently to try to stop the leaks
      at their source instead. Memory residency remains well below the
      numbers Herbert posted on #13426 originally, but in some cases
      a ways above the ones from 8.0. I need to figure out how to get
      the numbers matched up to individual modules and do some
      profiling.
      
      Relates to #13426
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3606
      2088d0be