1. 19 Sep, 2017 6 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
      cdaf5f20
  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
              |    ^
      b0991714
  5. 15 Sep, 2017 7 commits
  6. 14 Sep, 2017 21 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.
      7b8827ab
    • 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.
      8f99cd67
    • Richard Eisenberg's avatar
      Test #13938, with expect_broken · 86e1db7d
      Richard Eisenberg authored
      test case: dependent/should_compile/T13938
      86e1db7d
    • Richard Eisenberg's avatar
      Fix #13929 by adding another levity polymorphism check · fa626f3b
      Richard Eisenberg authored
      test case: typecheck/should_fail/T13929
      fa626f3b
    • 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.
      e5beb6ec
    • 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
      89c8d4d2
    • 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.
      3edbf5c6
    • Ben Gamari's avatar
      Bump primitive submodule · 58f1f733
      Ben Gamari authored
      58f1f733
    • 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
      ecb316c4
    • 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
      04bb8736
    • Richard Eisenberg's avatar
      b9776308
    • Richard Eisenberg's avatar
      Regression test for #12742 · c813d8c9
      Richard Eisenberg authored
      Location: dependent/should_compile/T12742
      c813d8c9
    • Richard Eisenberg's avatar
      3b686879
    • Simon Peyton Jones's avatar
      Add test for Trac #14232 · 93da9f95
      Simon Peyton Jones authored
      93da9f95
    • 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
      b6b56dd1
    • Simon Peyton Jones's avatar
      Remove unused variable binding · 9e46167f
      Simon Peyton Jones authored
      9e46167f
    • 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.
      9218ea60
    • 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
      a38acda6
    • 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.
      0390e4a0
    • 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.
      8bf865d3
    • Simon Peyton Jones's avatar
      Fix subtle bug in TcTyClsDecls.mkGADTVars · 3a27e34f
      Simon Peyton Jones authored
      This bug was revealed by Trac #14162.  In a GADT-style data-family
      instance we ended up a data constructor whose type mentioned
      an out-of-scope variable.  (This variable was in the kind of
      a variable in the kind of a variable.)
      
      Only Lint complained about this (actually only when the
      data constructor was injected into the bindings by CorePrep).
      So it doesn't matter much -- but it's a solid bug and might
      bite us some day.
      
      It took me quite a while to unravel because the test case was itself
      quite tricky.  But the fix is easy; just add a missing binding to the
      substitution we are building up.  It's in the regrettably-subtle
      mkGADTVars function.
      3a27e34f