- 11 Oct, 2007 1 commit
-
-
Simon Marlow authored
Previously MVars were always on the mutable list of the old generation, which meant every MVar was visited during every minor GC. With lots of MVars hanging around, this gets expensive. We addressed this problem for MUT_VARs (aka IORefs) a while ago, the solution is to use a traditional GC write-barrier when the object is modified. This patch does the same thing for MVars. TVars are still done the old way, they could probably benefit from the same treatment too.
-
- 10 Oct, 2007 1 commit
-
-
Simon Marlow authored
This fixes the unreg build, and in general building the RTS code via-C. I'm not sure at what stage this was broken, but I think it was working accidentally before.
-
- 11 Oct, 2007 1 commit
-
-
simonpj@microsoft.com authored
-
- 10 Oct, 2007 10 commits
-
-
simonpj@microsoft.com authored
GHC spots that an 'otherwise' guard is true, and uses that knowledge to avoid reporting spurious missing-pattern or overlaps with -Wall. The HPC ticks were disguising the 'otherwise', which led to this failure. Now we check. The key change is defining DsGRHSs.isTrueLHsExpr. Test is ds062
-
simonpj@microsoft.com authored
There are a number of situations in which you aren't allowed to use a quoted Name in a TH program, such as \x -> 'x But we weren't checking for that! Now we are. Merge to stable branch. Test is TH_qname.
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
Fix Trac #1678; be more careful about catching and reporting exceptions in spliced TH monadic computations Many of the new lines are comments to explain the slightly-convoluted in which exceptions get propagated out of the Q monad. This fixes Trac 1679; test is TH_runIO (as well as the exising TH_fail). Please merge
-
simonpj@microsoft.com authored
-
Simon Marlow authored
-
Simon Marlow authored
The extra safe points introduced for breakpoints were previously compiled as normal updatable thunks, but they are guaranteed single-entry, so we can use non-updatable thunks here. This restores the tail-call property where it was lost in some cases (although stack squeezing probably often recovered it), and should improve performance.
-
Simon Marlow authored
-
- 09 Oct, 2007 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
Previously inline candidates were given higher preference as non-loop-breakers than constructor applications, but the reason for this was that making a wrapper into a loop-breaker is to be avoided at all costs. This patch refines the algorithm slightly so that wrappers are explicitly avoided by giving them a much higher score, and other inline candidates are given lower scores than constructor applications. This makes almost zero difference to a complete nofib run, so it amounts to just a tidyup.
-
- 10 Oct, 2007 4 commits
-
-
chak@cse.unsw.edu.au. authored
-
Clemens Fruhwirth authored
-
simonpj@microsoft.com authored
The combination of "type refinement" for GADTs and the new equality constraints has made TcSimplify rather complicated. And wrong: it generated bogus code for cholewo-eval. This patch is still far from entirely satisfactory. There are too many places where invariants are unclear, and the code is still a bit of a mess. But I believe it's better, and it passes the regression tests! So I think it's good enough for the 6.8 release. Please merge. The main changes are: - get rid of extractLocalResults (which was always suspicious) - instead, treat the 'refinement' along with 'givens', by adding a field to RedEnv, red_reft which travels with red_givens - I also reworked extractResults a bit, which looked wrong to me This entailed changing the Given constructor in Avail to take an Inst rather than a TcId
-
simonpj@microsoft.com authored
-
- 29 Sep, 2007 2 commits
-
-
simonpj@microsoft.com authored
The Cast case of the rule-matcher was simply wrong. This patch fixes it; see Trac #1746. I also fixed the rule generation in SpecConstr to generate a wild-card for the cast expression, which we don't want to match on. This makes the rule more widely applicable; it wasn't the cause of the bug.
-
simonpj@microsoft.com authored
-
- 09 Oct, 2007 6 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
- 03 Oct, 2007 7 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
This required moving PackageId from PackageConfig to Module
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
- 02 Oct, 2007 1 commit
-
-
Simon Marlow authored
This fixes a problem with spurious recompilations: each time a module was recompiled, the order of the children would change, causing extra recompilation. MERGE TO STABLE
-
- 08 Oct, 2007 1 commit
-
-
Simon Marlow authored
-
- 05 Oct, 2007 4 commits
-
-
Thorkil Naur authored
-
Thorkil Naur authored
-
Thorkil Naur authored
-
Thorkil Naur authored
-