- Dec 12, 2013
-
-
This patch was authored by SPJ, and extracted from "Improve the handling of used-once stuff" by Joachim.
-
Joachim and I are committing this onto a branch so that we can share it, but we expect to do a bit more work before merging it onto head. Nofib staus: - Most programs, no change - A few improve - A couple get worse (cacheprof, tak, rfib) Investigating the "get worse" set is what's holding up putting this on head. The major issue is this. Consider map (f g) ys where f's demand signature looks like f :: <L,C1(C1(U))> -> <L,U> -> . So 'f' is not saturated. What demand do we place on g? Answer C(C1(U)) That is, the inner C1 should stay, even though f is not saturated. I found that this made a significant difference in the demand signatures inferred in GHC.IO, which uses lots of higher-order exception handlers. I also had to add used-once demand signatures for some of the 'catch' primops, so that we know their handlers are only called once.
-
This patch was authored by SPJ and extracted from "Improve the handling of used-once stuff" by Joachim.
-
This patch was authored by SPJ, and extracted from "Improve the handling of used-once stuff" by Joachim.
-
This is authored by SPJ, and split out out "Improve the handling of used-once stuff" by Joachim.
-
This was authored by SPJ and extracted from the "Improve the handling of used-once stuff" patch by Joachim.
-
- Dec 10, 2013
-
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
This is a long-standing bug. We were generating a Given equality between kind variables, and (at least until we support kind coercions) we can't do that. The fix is to drop such Given equalities entirely. That may mean we can't prove some things, but that's fair enough -- the current proof language can't express such proofs. See Note [Do not create Given kind equalities] in TcSMonad
-
Herbert Valerio Riedel authored
Signed-off-by:
Herbert Valerio Riedel <hvr@gnu.org>
-
- Dec 09, 2013
-
-
Joachim Breitner authored
-
Joachim Breitner authored
because it is not a top deman (see previous commit), and it is only used in an argument to mkStrictSig.
-
Joachim Breitner authored
because topDmdType is ''not'' the top of the lattice, as it puts an implicit absent demand on free variables, but Abs is the bottom of the Usage lattice. Why nopDmdType? Becuase it is the demand of doing nothing: Everything lazy, everything absent, no definite divergence.
-
Joachim Breitner authored
but do forget about certain divergence, if required. Fixes one part of ticket #8598. The added function (deferAfterIO) can maybe be merged with existing code, but given the ongoing work in the nested-cpr branch, I defer that work.
-
Joachim Breitner authored
The existing flag -ddump-stranal dumps the full Core, which is very verbose and not always helpful. This adds a more concise output (one line per top-level bind) that is faster to read, and especially more suitable to be used when writing test cases for the strictness analiser.
-
Austin Seipp authored
On win64 sizeof(long) != sizeof(void*), so debugTrace was casting a value of incorrect size causing a validate failure. Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
- Dec 05, 2013
-
-
Herbert Valerio Riedel authored
This improves the output of `git shortlog` and others, see http://git-scm.com/docs/git-shortlog for more details. The mapping is in part derived from the Darcs author-spelling file which was removed some time ago via 47a01802. There's still a couple of unmapped `<unknown>` authors in the Git history which will be hopefully mapped in the future as well to provide complete authorship information throughout all of GHC's recorded development history. Signed-off-by:
Herbert Valerio Riedel <hvr@gnu.org>
-
parcs authored
-
parcs authored
The lexer now uses unicode single quotation marks in its error messages if possible. This is due to the use of the 'quotes' combinator.
-
Simon Peyton Jones authored
This was an egregious error. If e :: T (Q ty1) then when we have the splice $e :: ty2 we must ensure that ty1~ty2 before we even think about running the splice! I took the opportunity to remove the dead-code tcSpliceDecls altogether.
-
Simon Peyton Jones authored
-
Christopher Rodrigues authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Evan Hauck authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Evan Hauck authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
- Dec 04, 2013
-
-
Christopher Rodrigues authored
An earlier patch fixes a bug in flushExec on linux only. This patch uses the fixed code on all operating systems. Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
parcs authored
-
parcs authored
We now do the allocation of the blackhole indirection closure inside the RTS procedure 'newCAF' instead of generating the allocation code inline in the closure body of each CAF. This slightly decreases code size in modules with a lot of CAFs. As a result of this change, for example, the size of DynFlags.o drops by ~60KB and HsExpr.o by ~100KB.
-
Joachim Breitner authored
as it seems that this code is now dead (due to [Dropping derived constraints]) (See #8592)
-
parcs authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Joachim Breitner authored
-
Joachim Breitner authored
we now print the precise class method, with types, where the coercion failed.
-
- Dec 03, 2013
-
-
Edsko de Vries authored
-
Edsko de Vries authored
See #8006 for the reason why. This is not a fix as such; more of a workaround.
-
Joachim Breitner authored
If "deriving (C)" fails, it will now, if possible, indicate which particular field of which constructor has caused the failure. (This fixes #8576)
-
Joachim Breitner authored
When doing non-standalone deriving, annotate each individual unsimplified constraint with its own CtOrigin. This is just the refactoring, so the CtOrigin is still CtDeriv in each case.
-