1. 29 Jun, 2016 2 commits
  2. 28 Jun, 2016 12 commits
    • Facundo Domínguez's avatar
      Stop the simplifier from removing StaticPtr binds. · dd92c67b
      Facundo Domínguez authored
      Summary:
      We have the FloatOut pass create exported ids for floated StaticPtr
      bindings. The simplifier doesn't try to remove those.
      
      This patch also improves on 7fc20b by making a common definition
      collectStaticPtrSatArgs to test for StaticPtr binds.
      
      Fixes #12207.
      
      Test Plan: ./validate
      
      Reviewers: simonpj, austin, bgamari, simonmar, goldfire
      
      Reviewed By: simonpj
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2366
      
      GHC Trac Issues: #12207
      dd92c67b
    • Simon Peyton Jones's avatar
      Wibble error message for #11471 · dc62a222
      Simon Peyton Jones authored
      I'm not quite sure why this changed with my two recent commits,
      but it /has/ changed (in a benign way) so I'm accepting it.
      Maybe it wasn't me anyway... but life is short and I'm not inclined
      to dig further.
      dc62a222
    • Simon Peyton Jones's avatar
      Deal correctly with unused imports for 'coerce' · 23b80ac4
      Simon Peyton Jones authored
      We only do newtype unwrapping for Coercible constraints if
      the newtype's data constructor is in scope.  We were trying to
      record the fact that the data constructor was thereby 'used', so
      that an import statement would not be flagged as unnecsssary
      (by -Wunused-imports).
      
      But the code was simply wrong. It was wrong because it assumed
      that only one level of unwrapping happened, whereas
      tcTopNormaliseNewTypeTF_maybe actually unwraps multiple layers.
      So we need to return a /list/ of data constructors that are used.
      
      This entailed a bit of refactoring, as usual.
      
      Fixes Trac #12067
      23b80ac4
    • Simon Peyton Jones's avatar
      Don't omit any evidence bindings · af21e388
      Simon Peyton Jones authored
      This fixes Trac #12156, where we were omitting to make an
      evidence binding (because cec_suppress was on), but yet the
      program was compiled and run.
      
      The fix is easy, and involves deleting code :-).
      af21e388
    • thomie's avatar
      Testsuite: mark tests expect_broken · 3fb9837f
      thomie authored
      * T7837 is still broken for prof_ways (#9406)
      * T11627b is broken on Windows for WAY=prof_hc_hb (#12236)
      * T8089 is also broken for WAY=profasm on Windows
      3fb9837f
    • thomie's avatar
      Testsuite: do not add -debug explicitly in .T file · 0eb03781
      thomie authored
      This prevents `cannot find -lHSrts_debug_p` when running `make
      TEST=T9078 WAY=profasm` (#9078).
      0eb03781
    • thomie's avatar
      Testsuite: run all indexed-types ways on ./validate --slow · 6b3b631e
      thomie authored
      I don't know why some ways were omitted before.
      6b3b631e
    • thomie's avatar
      Testsuite: framework failure improvements (#11165) · 782cacf5
      thomie authored
      * add framework failures to unexpected results list
      * report errors in .T files as framework failures (show in summary)
      * don't report missing tests when framework failures in .T files
      782cacf5
    • thomie's avatar
      Testsuite: cleanup printing of summary · d8e9b876
      thomie authored
      Just use a simple list of tuples, instead of a nested map.
      
      -90 lines of code.
      d8e9b876
    • thomie's avatar
      Testsuite: open/close stdin/stdout/stderr explicitly · 58f0086b
      thomie authored
      This allows run_command's to contain `|`, and `no_stdin` isn't necessary
      anymore.
      
      Unfortunately it doesn't fix T7037 on Windows which I had hoped it would
      (testsuite driver tries to read a file that it just created itself, but
      the OS says it doesn't exist).
      
      The only drawback of this commit is that the command that the testsuite
      prints to the terminal (for debugging purposes) doesn't mention the
      files that stdout and stderr are redirected to anymore. This is probably
      ok.
      
      Update submodule unix.
      
      Differential Revision: https://phabricator.haskell.org/D1234
      58f0086b
    • thomie's avatar
      Testsuite: do not print timeout message · bafd615e
      thomie authored
      This is a followup to e1293bbf, but then
      for Windows timeout.
      bafd615e
    • thomie's avatar
      Testsuite: simplify extra_file handling · 206b4a1d
      thomie authored
      Before, `extra_files(['.hpc/Main.mix'])` meant copy `Main.mix` to
      `<testdir>/.hpc/Main.mix`. This feature wasn't really necessary, so now
      it just means copy `Main.mix` to `<testdir>/Main.mix`. This simplifies
      the implementation.
      
      Some small other cleanups as well. -40 lines of code.
      206b4a1d
  3. 27 Jun, 2016 8 commits
  4. 26 Jun, 2016 1 commit
  5. 25 Jun, 2016 3 commits
    • Moritz Angermann's avatar
      Allow building static libs. · 8c1ceddd
      Moritz Angermann authored
      Summary:
      Commit 90538d86, seems to have broken static linking.
      The introduction of `argFixup` in `runLink` rearranges libs, and considers
      anything with an `-l` prefix or `.a` suffix a lib, which fails for libs that are
      just being linked together (e.g. `-o lib.a`).
      
      The proposed solution explicitly checks for the existance of the `-o` flag.
      
      Reviewers: rwbarton, erikd, Phyx, bgamari, austin
      
      Reviewed By: Phyx
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2362
      8c1ceddd
    • eir@cis.upenn.edu's avatar
      Refactor tcInferArgs and add comments. · 4cc5a39e
      eir@cis.upenn.edu authored
      This removes an unnecessary loop looking for invisible binders
      and tries to clarify what the very closely-related functions
      tcInferArgs, tc_infer_args, tcInferApps all do.
      4cc5a39e
    • eir@cis.upenn.edu's avatar
      s/Invisible/Inferred/g s/Visible/Required/g · 5fdb854c
      eir@cis.upenn.edu authored
      This renames VisibilityFlag from
      
      > data VisibilityFlag = Visible | Specified | Invisible
      
      to
      
      > data ArgFlag = Required | Specified | Inferred
      
      The old name was quite confusing, because both Specified
      and Invisible were invisible! The new names are hopefully clearer.
      5fdb854c
  6. 24 Jun, 2016 14 commits
    • Ryan Scott's avatar
      Add template-haskell changelog note for #8761 · a33b498d
      Ryan Scott authored
      a33b498d
    • Ryan Scott's avatar
      Clean up outdated comments in template-haskell changelog · 31b58065
      Ryan Scott authored
      * Replaced 2.11's *TBA* with *May 2016*
      * Removed an outdated TODO comment
      * Removed lines which incorrectly stated that some strictness-related
        functions had been removed (they have been deprecated instead)
      31b58065
    • Ryan Scott's avatar
      Fix typo in Data.Bitraverse Haddocks · 9bc22330
      Ryan Scott authored
      9bc22330
    • Simon Peyton Jones's avatar
      Test Trac #12229 · dadd8b84
      Simon Peyton Jones authored
      dadd8b84
    • Simon Marlow's avatar
      Fix T8761 (#12219, #12077) · 0bab375a
      Simon Marlow authored
      0bab375a
    • Simon Marlow's avatar
      Remote GHCi: comments only · eb732195
      Simon Marlow authored
      Summary: Add more Notes and signposts across the codebase to help navigation.
      
      Test Plan: validate
      
      Reviewers: goldfire, simonpj, austin, ezyang, hvr, bgamari, erikd
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2358
      eb732195
    • Simon Marlow's avatar
      Remote GHCi: separate out message types · bdb0d24b
      Simon Marlow authored
      Summary:
      From a suggestion by @goldfire: clean up the message types, so that
      rather than one Message type with all the messages, we have a separate
      THMessage type for messages sent back to GHC during TH execution.  At
      the same time I also removed the QDone/QFailed/QException messages
      into their own type, and made the result type of RunTH more accurate.
      
      Test Plan: validate
      
      Reviewers: goldfire, ezyang, austin, niteria, bgamari, erikd
      
      Subscribers: thomie, goldfire
      
      Differential Revision: https://phabricator.haskell.org/D2356
      bdb0d24b
    • Simon Marlow's avatar
      d2006d05
    • Simon Marlow's avatar
      Implement ReifyConStrictness for -fexternal-interpreter (#12219) · 12c44496
      Simon Marlow authored
      Fixes
         T10697_decided_1.run  T10697_decided_1 [exit code non-0] (ext-interp)
         T10697_decided_2.run  T10697_decided_2 [exit code non-0] (ext-interp)
         T10697_decided_3.run  T10697_decided_3 [exit code non-0] (ext-interp)
      12c44496
    • Simon Peyton Jones's avatar
      Improve pretty-printing of Avail · bb84ee44
      Simon Peyton Jones authored
      bb84ee44
    • Simon Peyton Jones's avatar
      Remove bogus comment on ForAllTy · f86a3379
      Simon Peyton Jones authored
      f86a3379
    • Simon Peyton Jones's avatar
      Fix renamer panic · 393928db
      Simon Peyton Jones authored
      This patch fixes Trac #12216 and #12127.  The 'combine' function
      in 'imp_occ_env' in RnNames.filterImports checked for an empty
      field-selector list, which was (a) unnecessary and (b) wrong.
      
      I've elaborated the comments.
      
      This does NOT fix #11959 which is related but not the same
      (it concerns bundling of pattern synonyms).
      393928db
    • Simon Peyton Jones's avatar
      Comments around invisibility · c871ce49
      Simon Peyton Jones authored
      Very minor
      c871ce49
    • Simon Peyton Jones's avatar
      Improve typechecking of instance defaults · d2958bd0
      Simon Peyton Jones authored
      In an instance declaration when you don't specify the code for a
      method, GHC fills in from the default binding in the class.
      The type of the default method can legitmiately be ambiguous ---
      see Note [Default methods in instances] in TcInstDcls --- so
      typechecking it can be tricky.
      
      Trac #12220 showed that although we were dealing with that ambiguity
      for /vanilla/ default methods, we were not doing so for /generic/
      default methods.  Moreover we were dealing with it clumsily, by
      generating post-typechecked code.
      
      This patch fixes the bug AND deletes code!  We now use the same code
      path for both vanilla and generic default methods; and generate
      /pre-typechecked/ code in both cases.  The key trick is that we can use
      Visible Type Application to deal with the ambiguity, which wasn't
      possible before.  Hooray.
      
      There is a small hit to performance in compiler/perf/T1969 which
      consists of nothing BUT instance declarations with several default
      methods to fill, which we now have to typecheck. The actual hit is
      from 724 -> 756 or 4% in that extreme example.  Real world programs
      have vastly fewer instance decls.
      d2958bd0