- 21 Feb, 2007 1 commit
-
-
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 13 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
-
sven.panne@aedion.de authored
-
sven.panne@aedion.de authored
-
Simon Marlow authored
Instead of asking for the last 100 patches, we just get the first 500 lines of output from darcs changes (ugh, better ideas welcome).
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
The code for -ddump-minimal-imports was erroneously using loadSrcInterface, which looks only for *exposed* modules. It should instead use loadSysInterface which looks for all interfaces. The fix is straightforward. MERGE to 6.6 branch.
-
chevalier@alum.wellesley.edu authored
I added a slightly more helpful remark in the profiling section of the manual about how to use ticky-ticky.
-
chevalier@alum.wellesley.edu authored
The following changes restore ticky-ticky profiling to functionality from its formerly bit-rotted state. Sort of. (It got bit-rotted as part of the switch to the C-- back-end.) The way that ticky-ticky is supposed to work is documented in Section 5.7 of the GHC manual (though the manual doesn't mention that it hasn't worked since sometime around 6.0, alas). Changes from this are as follows (which I'll document on the wiki): * In the past, you had to build all of the libraries with way=t in order to use ticky-ticky, because it entailed a different closure layout. No longer. You still need to do make way=t in rts/ in order to build the ticky RTS, but you should now be able to mix ticky and non-ticky modules. * Some of the counters that worked in the past aren't implemented yet. I was originally just trying to get entry counts to work, so those should be correct. The list of counters was never documented in the first place, so I hope it's not too much of a disaster that some don't appear anymore. Someday, someone (perhaps me) should document all the counters and what they do. For now, all of the counters are either accurate (or at least as accurate as they always were), zero, or missing from the ticky profiling report altogether. This hasn't been particularly well-tested, but these changes shouldn't affect anything except when compiling with -fticky-ticky (famous last words...) Implementation details: I got rid of StgTicky.h, which in the past had the macros and declarations for all of the ticky counters. Now, those macros are defined in Cmm.h. StgTicky.h was still there for inclusion in C code. Now, any remaining C code simply cannot call the ticky macros -- or rather, they do call those macros, but from the perspective of C code, they're defined as no-ops. (This shouldn't be too big a problem.) I added a new file TickyCounter.h that has all the declarations for ticky counters, as well as dummy macros for use in C code. Someday, these declarations should really be automatically generated, since they need to be kept consistent with the macros defined in Cmm.h. Other changes include getting rid of the header that was getting added to closures before, and getting rid of various code having to do with eager blackholing and permanent indirections (the changes under compiler/ and rts/Updates.*).
-
- 06 Feb, 2007 4 commits
-
-
Simon Marlow authored
For non-release builds, we want to append a date to the version number (e.g. 6.7.20070206). Previously this was done by the nightly build script, this new method figures out the snapshot version by querying the darcs repository and finding the date of the most recent patch (actually it finds the most recent of the last 100 patches, but that should be good enough). This is done by the configure script. To handle source distributions, we create a file VERSION in the top-level directory that contains the version number, and ship this in the source distribution. The configure script picks up the version from this file if it doesn't see a _darcs directory.
-
simonpj@microsoft.com authored
This egregious omission led to Trac #1128.
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-