1. 19 Aug, 2019 5 commits
  2. 18 Aug, 2019 5 commits
  3. 16 Aug, 2019 4 commits
  4. 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
      dependencies.
      ca71d551
  5. 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
      6329c70a
    • 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
      environment.
      
      This fixes an issue a test producing unexpected stderr output failed
      with a framework failure instead of showing a diff of the output.
      aa4d8b07
    • 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.
      a38104b4
  6. 13 Aug, 2019 2 commits
  7. 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.
      672cbab2
    • Ömer Sinan Ağacan's avatar
      Add test for #16893 · 0424de2d
      Ömer Sinan Ağacan authored
      0424de2d
    • 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.
      422ffce0
    • 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
      files.
      
      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
      81860281
  8. 07 Aug, 2019 12 commits
  9. 04 Aug, 2019 4 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.
      6e5dfcd2
    • 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.
      2e031806
    • Ben Gamari's avatar
      testsuite: Add testsuite for #16978 · 3b31a94d
      Ben Gamari authored
      3b31a94d
    • 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
      case:
      
          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.
      7d8d0012