| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
| |
See Note [Internal used_names]. Fixes Trac #5362.
|
|
|
|
| |
Fixes Trac #5359.
|
|
|
|
| |
Fixes Trac #5358.
|
| |
|
| |
|
| |
|
|
|
|
| |
for debugging the build system.
|
|
|
|
| |
Fixes trac #5311.
|
|
|
|
| |
Duncan says that Cabal isn't guaranteed to be warning-free.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes Trac #5341 and #5342. The question is about
what to do when floating out of the RHS of a Rec-bound
function, when there's a FloatCase involved. For FloatLets
they can join the Rec block, but FloatCases can't. But
we don't want to mess with the arity (that was the bug).
So in this (rather exotic case) we push the FloatCase
back inside any lambdas.
See Note [Floating out of Rec rhss]. It's a slightly ugly fix, but I
can't think of anything better, and I don't think it has any practical
impact.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The too-clever-ness meant that a variable could just go out
of scope; this happened in building System.Consol.Haskeline.Backend.Terminfo
in the haskeline library.
This patch makes the weak-loopbreaker computation simpler, and a bit
more conserative; which fixes the bug, and doesn't make any difference
to the code in the end.
|
|
|
|
| |
Thanks to David Terei for the comments.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Merge the part of
commit 2329833d4f3143d781db3448785fd395e8dba71c
Author: David Terei <davidterei@gmail.com>
Date: Wed Jul 20 16:27:28 2011 -0700
Format fixes
that defines typInstErr.
|
|
|
|
|
|
|
|
|
|
| |
I realised that my recently-added cunning stuff about
RULES for imported Ids was simply wrong, so this patch
removes it. See Note [Rules for imported functions],
which explains it all.
This patch also does quite a bit of refactoring in
the treatment of loop breakers.
|
|
|
|
|
| |
Heap census now happens during GC, so that time is already accounted
for in GC_tot_cpu.
|
|
|
|
|
|
|
|
|
|
| |
Now that the heap census runs in the middle of garbage collections,
the "CPU time" it was calculating included any CPU time used so far
in the current GC. This could cause CPU time to appear to go down,
which means hp2ps complained about "samples out of sequence".
I'm not sure if this is the nicest way to solve this (maybe resurrecting
mut_user_time_during_GC would be better?) but it gets things working again.
|
|
|
|
|
|
|
| |
Put spaces inbetween the values, so e.g.
p:Foobar.baz
p:Foo.barbaz
will hash differently.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and use it to report module loops nicely
This fixes Trac #5307. Now we get
Module imports form a cycle:
module `M8' (.\M8.hs)
imports `M1' (M1.hs)
which imports `M9' (.\M9.hs-boot)
which imports `M8' (.\M8.hs)
And the algorithm is linear time.
|
| |
|
|
|
|
| |
noticed by test ghci024)
|
|
|
|
| |
+RTS -hT and -threaded.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we have
x = \v -> map g
we want to eta-expand to
x = \v y -> map g y
We weren't doing so, and that led to worse code and,
perhaps, #5285. I need to check the latter, but I
was certainly seeing one similar error. Anyway
this looks like a definite improvement
|
|
|
|
| |
This fixes Trac #4903. See Note [Specialising imported functions] in OccurAnal.
|
|
|
|
|
|
|
| |
We used to have "loop breaker" and "non-rule loop breaker", but
the unqualified version in particualr was pretty confusing. So
now we have "strong loop breaker" and "weak loop breaker";
comments in BasicTypes and OccurAnal.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Conflicts:
compiler/typecheck/TcInstDcls.lhs
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
calling resurrectThreads() (fixes #5314).
This avoids a lot of problems, because resurrectThreads() may
overwrite some closures in the heap, leaving slop behind. The bug in
instances, this fix avoids them all in one go.
Conflicts:
rts/Schedule.c
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
When expanding the {..} stuff in an *expression*, take
account of which variables are in scope.
I updated the documentation, and in doing so found that
part of the previously-documented semantics wasn't implemented
(namely the stuff about fields in scope), so I fixed that too.
|
|
|
|
|
|
|
| |
We were doing this already for explicit types like
f :: forall a. Int
but not for constructor declarations. This patch
makes it consistent.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
being used.
We now track whether a module used any TH splices in the ModIface (and
at compile time in the TcGblEnv and ModGuts). If a module used TH
splices last time it was compiled, then we ignore the results of the
normal recompilation check and recompile anyway, *unless* the module
is "stable" - that is, none of its dependencies (direct or indirect)
have changed. The stability test is pretty important - otherwise ghc
--make would always recompile TH modules even if nothing at all had
changed, but it does require some extra plumbing to get this
information from GhcMake into HscMain.
test in driver/recomp009
|
| |
|
| |
|
|
|
|
| |
This patch fixes the unboxed singleton tuples in types and patterns
|
| |
|