1. 15 Aug, 2019 1 commit
    • James Foster's avatar
      Remove unused imports of the form 'import foo ()' (Fixes #17065) · ca71d551
      James Foster authored
      These kinds of imports are necessary in some cases such as
      importing instances of typeclasses or intentionally creating
      dependencies in the build system, but '-Wunused-imports' can't
      detect when they are no longer needed. This commit removes the
      unused ones currently in the code base (not including test files
      or submodules), with the hope that doing so may increase
      parallelism in the build system by removing unnecessary
  2. 14 Aug, 2019 3 commits
    • Richard Eisenberg's avatar
      GHCi supports not-necessarily-lifted join points · 6329c70a
      Richard Eisenberg authored
      Fixes #16509.
      See Note [Not-necessarily-lifted join points] in ByteCodeGen,
      which tells the full story.
      This commit also adds some comments and cleans some code
      in the byte-code generator, as I was exploring around trying
      to understand it.
      (This commit removes an old test -- this is really a GHCi problem,
      not a pattern-synonym problem.)
      test case: ghci/scripts/T16509
    • Andreas Klebinger's avatar
      Use os.devnull instead of '/dev/null' in the testsuite driver. · aa4d8b07
      Andreas Klebinger authored
      The later caused issues on windows by being translated into
      "\\dev\\null" and python then trying to open this non-existant file.
      So we now use os.devnull inside python and convert it to "/dev/null"
      when calling out to the shell, which is bound to run in a unix like
      This fixes an issue a test producing unexpected stderr output failed
      with a framework failure instead of showing a diff of the output.
    • Andreas Klebinger's avatar
      Rework the Binary Integer instance. · a38104b4
      Andreas Klebinger authored
      We used to serialise large integers as strings. Now they are serialized
      as a list of Bytes.
      This changes the size for a Integer in the higher 64bit range from 77 to
      9 bytes when written to disk.
      The impact on the general case is small (<1% for interface files) as we
      don't use many Integers. But for code that uses many this should be a
      nice benefit.
  3. 13 Aug, 2019 2 commits
  4. 10 Aug, 2019 4 commits
    • Ömer Sinan Ağacan's avatar
      Reformat comments in StgSyn · 672cbab2
      Ömer Sinan Ağacan authored
      This does not make any changes in the contents -- formatting only.
      Previously the comments were too noisy and I've always found it very
      hard to read. Hopefully it's easier to read now.
    • Ömer Sinan Ağacan's avatar
      Add test for #16893 · 0424de2d
      Ömer Sinan Ağacan authored
    • Ben Gamari's avatar
      Add timing on loadInterface · 422ffce0
      Ben Gamari authored
      AndreasK recently mentioned that he thought that interface file loading
      may be a non-trivial cost. Let's measure.
    • Joachim Breitner's avatar
      Consolidate `TablesNextToCode` and `GhcUnreigsterised` in configure (#15548) · 81860281
      Joachim Breitner authored
      `TablesNextToCode` is now a substituted by configure, where it has the
      correct defaults and error handling. Nowhere else needs to duplicate
      that, though we may want the compiler to to guard against bogus settings
      I renamed it from `GhcEnableTablesNextToCode` to `TablesNextToCode` to:
       - Help me guard against any unfixed usages
       - Remove any lingering connotation that this flag needs to be combined
         with `GhcUnreigsterised`.
      Original reviewers:
      Original subscribers: TerrorJack, rwbarton, carter
      Original Differential Revision: https://phabricator.haskell.org/D5082
  5. 07 Aug, 2019 12 commits
  6. 04 Aug, 2019 6 commits
    • Ben Gamari's avatar
      testsuite: Rework tracking of fragile tests · 6e5dfcd2
      Ben Gamari authored
      Breaks fragile tests into two groups, allowing us to easily preserve
      stdout/stderr of failing fragile tests.
    • Ben Gamari's avatar
      configure: Search for LLVM executables with two-number versions · 2e031806
      Ben Gamari authored
      Fedora uses the naming llc-7.0 while Debian uses llc-7. Ensure that both
      are found.
      Fixes #16990.
    • Ben Gamari's avatar
      testsuite: Add testsuite for #16978 · 3b31a94d
      Ben Gamari authored
    • Simon Peyton Jones's avatar
      Don't float unlifted join points to top level · 7d8d0012
      Simon Peyton Jones authored
      Ticket #16978 showed that we were floating a recursive,
      unlifted join point to top level.  It's very much a corner
          joinrec j :: Int#
                  j = jump j
          in ...
      But somehow it showed up in a real program.
      For non-recursive bindings in SetLevels.lvlBind we were already
      (correctly) checking for unlifted bindings, but when I wrote
      that code I didn't think that a /recursive/ binding could be
      unlifted but /join-points/ can be!
      Actually I don't think that SetLevels should be floating
      join points at all.  SetLevels really floats things to move
      stuff out of loops and save allocation; but none of that applies
      to join points.  The only reason to float join points is in
      cases like
         join j1 x = join j2 y = ...
                     in ...
      which we might want to swizzle to
         join j2 x y = ... in
         join j1 x = ...
         in ...
      because now j1 looks small and might be inlined away altogether.
      But this is a very local float perhaps better done in the simplifier.
      Still: this patch fixes the crash, and does so in a way that is
      harmless if/when we change our strategy for floating join points.
    • Matthew Pickering's avatar
      Update .gitignore · 8a061d18
      Matthew Pickering authored
      Add some files generated by hadrian and some tooling files
    • Ben Gamari's avatar
      gitlab-ci: Manually set SPHINXBUILD on Windows · 7e404afd
      Ben Gamari authored
      For some reason configure seems unable to find it on its own. Let's try
      giving it a hint.
      Addresses #16398.
  7. 03 Aug, 2019 5 commits
  8. 02 Aug, 2019 5 commits
    • Adam Sandberg Eriksson's avatar
    • Krzysztof Gogolewski's avatar
      Remove build.nix.sh · c902f56b
      Krzysztof Gogolewski authored
      This file refers to shell.nix, which was removed in
      430e6fed and c00d2f59.
    • Ryan Scott's avatar
      Use injectiveVarsOfType to catch dodgy type family instance binders (#17008) · 93bed40a
      Ryan Scott authored
      Previously, we detected dodgy type family instances binders by
      expanding type synonyms (via `exactTyCoVarsOfType`) and looking for
      type variables on the RHS that weren't mentioned on the (expanded)
      LHS. But this doesn't account for type families (like the example
      in #17008), so we instead use `injectiveVarsOfType` to only count
      LHS type variables that are in injective positions. That way, the `a`
      in `type instance F (x :: T a) = a` will not count if `T` is a type
      synonym _or_ a type family.
      Along the way, I moved `exactTyCoVarsOfType` to `TyCoFVs` to live
      alongside its sibling functions that also compute free variables.
      Fixes #17008.
    • Ryan Scott's avatar
      Rip out 9-year-old pattern variable hack (#17007) · 1b9d32b8
      Ryan Scott authored
      GHC had an ad hoc validity check in place to rule out pattern
      variables bound by type synonyms, such as in the following example:
      type ItemColID a b = Int  -- Discards a,b
      get :: ItemColID a b -> ItemColID a b
      get (x :: ItemColID a b) = x :: ItemColID a b
      This hack is wholly unnecessary nowadays, since OutsideIn(X) is more
      than capable of instantiating `a` and `b` to `Any`. In light of this,
      let's rip out this validity check.
      Fixes #17007.
    • Andreas Klebinger's avatar
      Add StandaloneDeriving example for DerivingVia. · 95521140
      Andreas Klebinger authored
  9. 01 Aug, 2019 1 commit
    • Ivan Kasatenko's avatar
      Fix T16916 CI failures (#16966) · 986643cb
      Ivan Kasatenko authored
      1. Slightly increased the waiting time for the tested effect to be more
      2. Introduced measuring of the actual time spent waiting and adjusing
         CPU time by it to compensate for threadDelay waiting time
  10. 31 Jul, 2019 1 commit
    • Ben Gamari's avatar
      gitlab-ci: Fix it after upgrade · 5e04841c
      Ben Gamari authored
      It seems that the regular expression parser changed in GitLab 12.1 and
      now does now support forward slashes in the RE, even when escaped.