1. 06 Mar, 2018 7 commits
    • David Feuer's avatar
      Make accumArray and accum stricter · 08345bd0
      David Feuer authored
      `accumArray` was lazier than documented. `accum` did not have
      documented strictness. The extra laziness allowed thunks to build
      up in the array. Force the results of applying the accumulating
      function to resolve.
      
      Reviewers: hvr, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: alpmestan, rwbarton, thomie, carter
      
      GHC Trac Issues: #14785
      
      Differential Revision: https://phabricator.haskell.org/D4403
      08345bd0
    • Michal Terepeta's avatar
      cmm/: Avoid using lazy left folds · 64c0af75
      Michal Terepeta authored
      This basically replaces all uses of `foldl` with `foldl'`. I've looked
      at all the call sites and there doesn't seem to be any reason to prefer
      the lazy version.
      Signed-off-by: Michal Terepeta's avatarMichal Terepeta <michal.terepeta@gmail.com>
      
      Test Plan: ./validate
      
      Reviewers: bgamari, simonmar
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D4463
      64c0af75
    • niteria's avatar
      Correct -g flag description · 9bccfcdb
      niteria authored
      Since 7aaeaf81
      `-g1` and `-g2` are actually different.
      The tutorial below is correct.
      
      Test Plan: harbormaster
      
      Reviewers: bgamari, simonmar
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D4471
      9bccfcdb
    • niteria's avatar
      Allow top level ticked string literals · 5bc195a2
      niteria authored
      This reverts f5b275a2
      and changes the places that looked for `Lit (MachStr _))`
      to use `exprIsMbTickedLitString_maybe` to unwrap ticks as
      necessary.
      Also updated relevant comments.
      
      Test Plan:
      I added 3 new tests that previously reproduced.
      GHC HEAD now builds with -g
      
      Reviewers: simonpj, simonmar, bgamari, hvr, goldfire
      
      Subscribers: rwbarton, thomie, carter
      
      GHC Trac Issues: #14779
      
      Differential Revision: https://phabricator.haskell.org/D4470
      5bc195a2
    • Ömer Sinan Ağacan's avatar
      Schedule.c: remove a redundant CPP guard · ee597e9e
      Ömer Sinan Ağacan authored
      (the CPP guard is already wrapped with the same guard in line 1549)
      ee597e9e
    • Moritz Angermann's avatar
      add CCX=$(CXX) to integer-gmp · cf5bc96e
      Moritz Angermann authored
      Summary:
      This came up when trying to build GHC HEAD with nix. We
      do not set CCX for integer-gmp when running ./configure. We do
      this however for libffi.
      
      The result is, that if CCX is not set, we default to the system
      one, of which there might be none (as in nixos's case).  This
      will not show on a debian+nix or similar setup, where the system
      `cxx` is still in place, and only shows up when the system tries
      hard to sandbox everything (even cxx) as nixOS does.
      
      We use `CXX`, which is set to either `clang` or `CC_STAGE1`, and
      also usedfor `CC`, similar to what we do for libffi.c
      
      Test Plan: ./validate
      
      Reviewers: bgamari, hvr
      
      Reviewed By: hvr
      
      Subscribers: rwbarton, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D4473
      cf5bc96e
    • Moritz Angermann's avatar
      `--via-asm` only for windows targets · f6cf4001
      Moritz Angermann authored
      Reviewers: trofi, bgamari
      
      Reviewed By: trofi, bgamari
      
      Subscribers: rwbarton, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D4467
      f6cf4001
  2. 05 Mar, 2018 5 commits
    • Herbert Valerio Riedel's avatar
      Fixup include of gmp/config.mk to use new location · df7ac37d
      Herbert Valerio Riedel authored
      This wasn't spotted rightaway in
      8f0b2f5e
      because the include-site deliberately ignored include-errors as
      a Hack with the justification below:
      
      > Hack. The file gmp/config.mk doesn't exist yet after running ./configure in
      > the toplevel (ghc) directory. To let some toplevel make commands such as
      > sdist go through, right after ./configure, don't consider this an error.
      
      This may have contributed to #14891.
      df7ac37d
    • Simon Peyton Jones's avatar
      Simplify rnLHsInstType · 1c062b79
      Simon Peyton Jones authored
      This patch is preparatory for the main fix for Trac #13324
      
      Here, we simplify rnLHsInstType so that it does not try
      to figure out the class name.  This turns out to have a good
      (rather than bad) effect on error messages, and it prepares
      the way for the main event.
      
      Plus, less code!
      1c062b79
    • Ryan Scott's avatar
      Fix #14888 by adding more special cases for ArrowT · 6ee831f2
      Ryan Scott authored
      Summary:
      There were previously some situations where `(->)` would
      not be desugared or reified as `ArrowT`, leading to various oddities
      such as those observed in #14888. We now uniformly treat `(->)` as
      `ArrowT` in Template Haskell–world by checking for any tycon that
      has the same name as `(->)`, and converting that to `ArrowT`.
      
      Test Plan: make test TEST=T14888
      
      Reviewers: goldfire, bgamari, simonpj
      
      Reviewed By: goldfire, simonpj
      
      Subscribers: simonpj, rwbarton, thomie, carter
      
      GHC Trac Issues: #14888
      
      Differential Revision: https://phabricator.haskell.org/D4466
      6ee831f2
    • Simon Peyton Jones's avatar
      Respect Note [The tcType invariant] · 3d252037
      Simon Peyton Jones authored
      I tried to do this with
      
          commit 0a12d92a
          Author: Simon Peyton Jones <simonpj@microsoft.com>
          Date:   Wed Dec 13 12:53:26 2017 +0000
      
          Further improvements to well-kinded types
      
          The typechecker has the invariant that every type should be well-kinded
          as it stands, without zonking.  See Note [The well-kinded type invariant]
          in TcType.
      
          That invariant was not being upheld, which led to Trac #14174.  I fixed
          part of it, but T14174a showed that there was more.  This patch finishes
          the job.
      
      But I didn't get it quite right as Trac #14873 showed.
      
      This patch fixes the problem; although I am still a bit unhappy.
      (See "A worry" in the HsApp case of tc_infer_hs_type.)
      3d252037
    • Simon Peyton Jones's avatar
      Wombling around in Trac #14808 · e7653bc3
      Simon Peyton Jones authored
      Comment:4 in Trac #14808 explains why I'm unhappy with the current
      state of affairs -- at least the lack of documentation.
      
      This smallpatch does nothing major:
      
      * adds comments
      * uses existing type synonyms more (notably FreeKiTyVarsWithDups)
      * adds another test case to T14808
      e7653bc3
  3. 04 Mar, 2018 3 commits
  4. 03 Mar, 2018 1 commit
    • Ryan Scott's avatar
      Parenthesize (() :: Constraint) in argument position · 99c556d2
      Ryan Scott authored
      Summary:
      A simple oversight in the pretty-printer lead to a special
      case for `() :: Constraint` not being parenthesized correctly when
      used in an argument position. Easily fixed with a `maybeParen`.
      
      Test Plan: make test TEST=T14796
      
      Reviewers: alanz, goldfire, bgamari, simonpj
      
      Reviewed By: bgamari, simonpj
      
      Subscribers: simonpj, rwbarton, thomie, carter
      
      GHC Trac Issues: #14796
      
      Differential Revision: https://phabricator.haskell.org/D4408
      99c556d2
  5. 02 Mar, 2018 24 commits