- 22 Feb, 2007 1 commit
-
-
Simon Marlow authored
-
- 11 Jan, 2007 1 commit
-
-
Simon Marlow authored
-
- 21 Feb, 2007 3 commits
-
-
mnislaih authored
This patch performs several optimizations with the goal of minimizing the cost of building the arguments to breakpointJump: - Group them all in a single tuple, to minimize closure creation in heap - Wrap this with the GHC.Base.lazy combinator, to induce max laziness - Remove as many literal strings as possible * injecting a module-local CAF to store the module name and use that * eliminating the package string (not needed).
-
mnislaih authored
It now outputs "<function>" instead of showing them as thunks
-
mnislaih authored
-
- 19 Feb, 2007 1 commit
-
-
mnislaih authored
The breakpointJump functions never show up in the code that the typechecker sees, as they are inserted by the desugarer later.
-
- 21 Feb, 2007 8 commits
-
-
simonpj@microsoft.com authored
Fixes Trac #1154. Please merge. Tests are tc225, and tcfail176.
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
Conal Eliott (Trac #1145) exposed a nasty flaw in the way in which orphan instances are computed, when there are functional dependencies in the class. It took me some time to figure out what was going on, and led to more refactoring. Briefly: * Elaborate comments about orphan-hood and versioning added to IfaceSyn * The is_orph field vanishes from InstEnv.Instance * Similarly ru_orph vanishes from CoreSyn.CoreRule * Orphan-hood is computed in MkIface.instanceToIfaceInst, and MkIface.coreRuleToIfaceRule Elsewhere just tidying up.
-
simonpj@microsoft.com authored
I forgot to to this when refactoring some months ago!
-
simonpj@microsoft.com authored
This one is a hangover from something I did a month or two ago, but didn't get quite right. tcSimplifyDefault should not check for no-instances; instead the checkValidInstance in TcDeriv does so. Conal's DeepArrow needs this fix. Test is drv015.
-
simonpj@microsoft.com authored
This patch fixes the typechecking of the default declaration itself, when overloaded strings are involved. It also documents the behaviour in the user manual. nofib/spectral/power should work again now!
-
Simon Marlow authored
-
simonpj@microsoft.com authored
My re-org of the case-merging transformation introduced a bug, which led to incorrect code. This only showed up occasionally, but it generated incorrect code for PprC.pprCastReg in the stage-2 compiler. As a result the stage-2 compiler ran without crashing, but itself generated bogus C. For a change, this is one that Core Lint couldn't find, so the trail was a bit longer. The fix is easy (and commented).
-
- 20 Feb, 2007 4 commits
-
-
simonpj@microsoft.com authored
Fixes Trac #1128 Please merge to STABLE A rather obscure bug related to -fno-implicit-prelude. See Note [Used names with interface not loaded] in RnNames. Easily fixed, however. Test is rn051
-
Simon Marlow authored
-
Simon Marlow authored
See conc059.
-
Simon Marlow authored
This is the Windows counterpart to "Make the non-threaded-RTS threadDelay wait at least as long as asked"
-
- 19 Feb, 2007 1 commit
-
-
simonpj@microsoft.com authored
An egregious bug in the type checker meant that it was possible for a "signature type variable" (a MetaTv of SigTv form) to be instantatiated with a type-constructor application. This destroys the invariant for SigTv. The fix is easy; adding the predicate TcType.isTyConableTyVar Fixes Trac #1153
-
- 16 Feb, 2007 3 commits
-
-
mnislaih authored
Test ghci.debugger/scripts/print018 covers this
-
mnislaih authored
Print "Breakpoint set at Main:26:13" instead of "Breakpoint set at (26,13)"
-
mnislaih authored
Now the user can say > :break add 13 at the ghci prompt and the debugger will use the first top level module as the target for the breakpoint
-
- 14 Feb, 2007 1 commit
-
-
judah authored
-
- 15 Feb, 2007 1 commit
-
-
mnislaih authored
My code was doing unnecessary work when trying to get hold of all the BCOs in order to sniff the datacon names. This involved calculating the transitive closure of a relation and was causing a huge performance slowdown in GHCi, as benchmarks uncovered. It turns out that this calculation was unnecessary.
-
- 13 Feb, 2007 1 commit
-
-
mnislaih authored
Benchmarks have shown that making the formation of the list of locals more lazy can improve performance of -fdebugging up to 50% in some cases
-
- 15 Feb, 2007 1 commit
-
-
Simon Marlow authored
For example, "ghc -E Foo.hs -o Foo.bar" just copies Foo.hs to Foo.bar. This patch adds a LINE pragma to the beginning of Foo.bar so that further processing can track the location of the original file. The motiviation for this is bug #1044. When generating Haddock docs, we preprocess the .hs to a .raw-hs, sometimes this doesn't involve any actual preprocessing and in those cases we lose track of the original filename.
-
- 14 Feb, 2007 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
Since thunks grew an extra padding word in GHC 6.6, closure_sizeW() has been wrong for AP closures because it assumed compatible layout between PAPs and APs. One symptom is that the compacting GC would crash if it encountered an AP. APs conly crop up in GHCi or when using asynchronous exceptions. Fixes #1010
-
- 13 Feb, 2007 2 commits
-
-
andy@galois.com authored
-
andy@galois.com authored
-
- 09 Feb, 2007 3 commits
-
-
simonpj@microsoft.com authored
This patch improves the SpecConstr pass, by a) making it work with join points b) making it generate specialisations transitively As part of it, SpecConstr now carries a substitution with it, which runs over the whole program as it goes. This turned out to be a big win; simplified the implementation quite a bit. I have *disabled* the specialisation on lambdas; it's pretty fragile, and sometimes generates more and more specialisations. Something to come back to, perhaps. I rejigged the flag-handling a bit. Now the specification of passes in DynFlags is a bit nicer; see - optLevelFlags top-level data structure - runWhen function - CoreDoPasses constructor There are now command-line flags -fspec-constr -fliberate-case -fspec-threshold=N which do the obvious thing. -O2 switches on both spec-constr and liberate-case. You can use -fno-liberate-case, -fno-spec-constr after -O2 to switch them off again. The spec-threshold applies to both these transformations; default value 200 for now.
-
simonpj@microsoft.com authored
(NB: this patch could conceivably require some bits of the following SpecConstr patch to compile cleanly. It's conceptually independent, but I'm not 100% certain that I've included all the necessary bits here.) This patch cleans up the simplifier's handling of various otimisations for case expressions, notably - case elimination (discarding the case altogether) - merging identical alternatives - discarding impossible alternative - merging nested cases Previously this was partly handled before, and partly after, simplifying the case alternatives. The trouble with that is that the dead-ness information on the case binders gets munged during simplification, and that turned out to mean that case elmination essentially never happened -- stupid. Now I've moved it all to before simplifying the alterntives. In fact this reduces the amount of code, I think, and it's certainly tidier. I don't think there is any loss.
-
Simon Marlow authored
The ticky static flag was being poked too early, which lead to breakage in the -prof way amongst other things. I've installed some sanity checking to make sure we catch this earlier if it happens again.
-
- 08 Feb, 2007 3 commits
-
-
Simon Marlow authored
This happens when the build tree is a link-tree to the source tree, because lndir will normally omit the _darcs directory.
-
Simon Marlow authored
-
Simon Marlow authored
-
- 07 Feb, 2007 4 commits
-
-
chevalier@alum.wellesley.edu authored
Under GhcStage2HcOpts, "O" should be "-O"; fixed.
-
mnislaih authored
Newtypes have always been a problem because they are not there at runtime, but we need to take them into account. Tests ghci.debugger/print011 and ghci.debugger/print012 cover this
-
mnislaih authored
Made a bit faster the test which gets done every time a running program hits a dynamic breakpoint. I moved the bounds checking inside a DEBUG pragma and replaced (IArray.!) for unsafeAt
-
Ian Lynagh authored
-