Skip to content
Snippets Groups Projects
  1. Apr 24, 2015
  2. Apr 22, 2015
  3. Apr 21, 2015
  4. Apr 20, 2015
    • Simon Peyton Jones's avatar
      Teach DmdAnal that coercions are value arguments! · d5773a49
      Simon Peyton Jones authored
      The demand analyser was treating coercion args like type args,
      which meant that the arguments in a strictness signature got
      out of step with the arguments of a call.  Result chaos and
      disaster.  Trac #10288 showed it up.
      
      It's hard to get this bug to show up in practice because
       - functions abstracted over coercions are usually abstracted
         over *boxed* coercions
       - we don't currently unbox a boxed-coercion arg because it's
         GADT (I see how to fix this too)
      
      But after floating, optimisation, and so on, Trac #10288 did
      get a function abstracted over an unboxed coercion, and then
      the -flate-dmd-anal pass went wrong.
      
      I don't think I can come up with a test case, but I don't think
      it matters too much.
      
      Still to come
       - Fix a second bug, namely that coercion variables are wrongly
         marked as absent because DmdAnal doesn't check the the free
         variables of casts. I think this never bites in practice
         (see the follow-up commit)
      
       - Make GADT products work with strictness analysis
      d5773a49
    • Herbert Valerio Riedel's avatar
      Update Cabal submodule to 1.22.3.0 release · 4bc925a6
      Herbert Valerio Riedel authored
      Highlights since 1.22.2.0:
      
      - cabal check will fail on -fprof-auto passed as a ghc-option
      - filterConfigureFlags: filter more flags.
      - fix ghcjs-pkg version number handling
      
      Addresses #10304
      4bc925a6
  5. Apr 18, 2015
  6. Apr 17, 2015
  7. Apr 16, 2015
  8. Apr 15, 2015
    • Joachim Breitner's avatar
      Improve Call Arity performance · a9ca67f6
      Joachim Breitner authored
      This improves how the Call Arity deals with "boring" variables. Boring
      variables are those where it does not bother to include in the analysis
      result, so whenever something is looked up in the analysis result, we
      have to make a conservative assumption about them.
      
      Previously, we extended the result with such conservative information
      about them, to keep the code uniform, but that could blow up the amount
      of data passed around, even if only temporarily, and slowed things down.
      
      We now pass around an explicit list (well, set) of variable that are
      boring and take that into account whenever we use the result. Not as
      pretty, but noticably faster.
      a9ca67f6
    • Simon Peyton Jones's avatar
      Fix fundep coverage-condition check for poly-kinds · 49d9b009
      Simon Peyton Jones authored
      See Note [Closing over kinds in coverage] in FunDeps.
      I'd already fixed this bug once, for Trac #8391, but I put the
      call to closeOverKinds in the wrong place, so Trac #10109
      failed.  (It checks the /liberal/ coverage condition, which
      
      The fix was easy: move the call to the right place!
      49d9b009
  9. Apr 14, 2015
Loading