1. 19 Sep, 2017 7 commits
  2. 18 Sep, 2017 1 commit
    • niteria's avatar
      [RTS] Add getObjectLoadStatus · cdaf5f20
      niteria authored
      This adds a function to the RTS linker API which lets the
      user check the status of dynamically linked objects.
      It was initially proposed by @afarmer in D2068.
      It's useful for testing the linker and also for detecting retention
      problems in production.
      It takes a path, because it's easier to use path as key instead of producing
      some stable handle.
      It returns an enum instead of bool, because I see no reason for destroying
      information. All the complexity is already out in the open, so there's
      nothing to save the users from.
      Test Plan: ./validate
      Reviewers: simonmar, Phyx, bgamari, austin, erikd
      Reviewed By: Phyx, bgamari
      Subscribers: rwbarton, afarmer, thomie
      Differential Revision: https://phabricator.haskell.org/D3963
  3. 17 Sep, 2017 4 commits
  4. 16 Sep, 2017 1 commit
    • Ben Gamari's avatar
      base: Enable TypeInType in Data.Type.Equality · b0991714
      Ben Gamari authored
      Otherwise compilation fails with,
          libraries/base/Data/Type/Equality.hs:145:4: error:
              • Data constructor ‘HRefl’ constrains the choice of kind parameter:
                  k2 ~ k2
                Use TypeInType to allow this
              • In the definition of data constructor ‘HRefl’
                In the data type declaration for ‘:~~:’
          145 |    HRefl :: a :~~: a
              |    ^
  5. 15 Sep, 2017 7 commits
  6. 14 Sep, 2017 20 commits
    • Joachim Breitner's avatar
      Bump submodule nofib (Semigroup now required) · 7b8827ab
      Joachim Breitner authored
      This will unblock perf.haskell.org, which got stuck after 8ae263ce.
    • Richard Eisenberg's avatar
      Fix #13963. · 8f99cd67
      Richard Eisenberg authored
      This commit fixes several things:
      1. RuntimeRep arg suppression was overeager for *visibly*-quantified
      RuntimeReps, which should remain.
      2. The choice of whether to used a Named TyConBinder or an anonymous
      was sometimes wrong. Now, we do an extra little pass right before
      constructing the tycon to fix these.
      3. TyCons that normally cannot appear unsaturated can appear unsaturated
      in :kind. But this fact was not propagated into the type checker.
      It now is.
    • Richard Eisenberg's avatar
      Test #13938, with expect_broken · 86e1db7d
      Richard Eisenberg authored
      test case: dependent/should_compile/T13938
    • Richard Eisenberg's avatar
      Fix #13929 by adding another levity polymorphism check · fa626f3b
      Richard Eisenberg authored
      test case: typecheck/should_fail/T13929
    • Richard Eisenberg's avatar
      Make rejigConRes do kind substitutions · e5beb6ec
      Richard Eisenberg authored
      This was a lurking bug discovered on the hunt for #13910, but
      it doesn't fix that bug. The old version of rejigConRes was
      just wrong, forgetting to propagate a kind-change.
    • Richard Eisenberg's avatar
      Fix #13909 by tweaking an error message. · 89c8d4d2
      Richard Eisenberg authored
      GHC was complaining about numbers of arguments when the real
      problem is impredicativity.
      test case: typecheck/should_fail/T13909
    • Ben Gamari's avatar
      testsuite: Fix dependence on grep behavior in T8129 · 3edbf5c6
      Ben Gamari authored
      grep was considering the output to be binary on my machine, resulting in a
      spurious test failure.
    • Ben Gamari's avatar
      Bump primitive submodule · 58f1f733
      Ben Gamari authored
    • Ben Gamari's avatar
      nativeGen: A few strictness fixes · ecb316c4
      Ben Gamari authored
      Test Plan: Validate
      Reviewers: austin, simonmar
      Subscribers: rwbarton, thomie
      Differential Revision: https://phabricator.haskell.org/D3948
    • Richard Eisenberg's avatar
      Fix #13407 by suppressing invisibles better. · 04bb8736
      Richard Eisenberg authored
      Previously, the iface-invisible-suppresser assumed that all
      invisible things are up front. Not true!
      test case: ghci/scripts/T13407
    • Richard Eisenberg's avatar
    • Richard Eisenberg's avatar
      Regression test for #12742 · c813d8c9
      Richard Eisenberg authored
      Location: dependent/should_compile/T12742
    • Richard Eisenberg's avatar
    • Simon Peyton Jones's avatar
      Add test for Trac #14232 · 93da9f95
      Simon Peyton Jones authored
    • niteria's avatar
      [RTS] Make -po work · b6b56dd1
      niteria authored
      db2a6676 added `-po` option, but
      the part that parses it was missing.
      Test Plan:
      On a simple file:
      ./inplace/bin/ghc-stage2 A.hs -prof -main-is A; ./A +RTS -P -potest
      produced test.prof file and didn't produce A.prof file.
      ./A +RTS -P
      produced A.prof file
      Reviewers: simonmar, bgamari, austin, erikd
      Reviewed By: bgamari
      Subscribers: rwbarton, thomie
      Differential Revision: https://phabricator.haskell.org/D3946
    • Simon Peyton Jones's avatar
      Remove unused variable binding · 9e46167f
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
      Interim fix for a nasty type-matching bug · 9218ea60
      Simon Peyton Jones authored
      The type matcher in types/Unify.hs was producing a substitution
      that had variables from the template in its range.  Yikes!
      This patch, documented in Note [Matching in the presence of casts],
      is an interm fix.  Richard and I don't like it much, and are
      pondering a better solution (Trac #14119).
      All this came up in investigating Trac #13910. Alas this patch
      doesn't fix #13910, which still has ASSERT failures, so I have
      not yet added a test.  But the patch does fix a definite bug.
    • Simon Peyton Jones's avatar
      Refactor tcInferApps · a38acda6
      Simon Peyton Jones authored
      This is a simple refactor
      * Remove an unnecessary accumulating argument (acc_hs_apps) from
        the 'go' function
      * And put 'n' first in the same function
    • Simon Peyton Jones's avatar
      Refactor to eliminate FamTyConShape · 0390e4a0
      Simon Peyton Jones authored
      Consider this note (TcTyClsDecls)
        Note [Type-checking type patterns]
        When typechecking the patterns of a family instance declaration, we can't
        rely on using the family TyCon itself, because this is sometimes called
        from within a type-checking knot. (Specifically for closed type families.)
        The FamTyConShape gives just enough information to do the job.
      I realised that this exact purpose can be served by TcTyCons, and
      in fact rather better.  So this patch
      * Refactors FamTyConShape out of existence, replacing it with TcTyCOn
      * I also got rid Type.filterOutInvisibleTyVars, which was a very
        complex way to do something quite simple.  I replaced the calls
        with TyCon.tyConVisibleTyVars.
      No change in behaviour.
    • Simon Peyton Jones's avatar
      Tidying could cause ill-kinded types · 8bf865d3
      Simon Peyton Jones authored
      I found (Trac #14175) that the tidying we do when reporting
      type error messages could cause a well-kinded type to become
      ill-kinded. Reason: we initialised the tidy-env with a
      completely un-zonked TidyEnv accumulated in the TcLclEnv
      as we come across lexical type-varialbe bindings.
      Solution: zonk them.
      But I ended up refactoring a bit:
      * Get rid of tcl_tidy :: TidyEnv altogether
      * Instead use tcl_bndrs :: TcBinderStack
        This used to contain only Ids, but now I've added those
        lexically scoped TyVars too.
      * Change names:
           TcIdBinderStack -> TcBinderStack
           TcIdBinder      -> TcBinder
           extendTcIdBndrs -> extendTcBinderStack
      * Now tcInitTidyEnv can grab those TyVars from the
        tcl_bndrs, zonk, and tidy them.
      The only annoyance is that I had to add TcEnv.hs-boot, to
      break the recursion between the zonking code and the
      TrRnMonad functions like addErrTc that call tcInitTidyEnv.
      Tiresome, but in fact that file existed already.