- 07 Feb, 2007 9 commits
-
-
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 9 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
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
Ian Lynagh authored
-
- 05 Feb, 2007 10 commits
-
-
Ian Lynagh authored
-
Simon Marlow authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
This patch improves prepareRhs, so that it deals better with casts. We want to deal well cases like this v = (f e1 `cast` co) e2 Here we want to make e1,e2 trivial and get x1 = e1; x2 = e2; v = (f x1 `cast` co) v2 This really happens in parser libraries, which wrap functions in newtypes.
-
simonpj@microsoft.com authored
See Note [Casts and lambdas] in SimplUtils. I found this transformation when staring at some cast-heavy code generated by Language.Haskell.Lexer.hs in the haskell-src library. The basic transformation is this: (\x. e `cast` g1) --> (\x.e) `cast` (tx -> g1) where x:tx.
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
This patch clears up a long-standing wart. For some time it's been the case that the RHS of a non-recursive let can be unlifed iff the RHS is ok-for-speculation This patch extends the invariant to the argument of an App, and establishes it by the smart constructors mkDsApp, mkDsApps in the desugarer. Once established, it should be maintained by the optimiser. This tides up some awkward cases, notably in exprIsHNF, and I think it fixes a outright strictness bug in Simplify.prepareRhs.
-
simonpj@microsoft.com authored
At the moment GHC really does very little simplification of coercions. This patch improves matters, but it's still not great, especially when you have chains linked together with 'trans'. I'm also concerned that I have not yet implemented the 'leftc' and 'rightc' coercions we added to the paper. But at least things are better than they were. In particular g `trans` sym g now cancels to give the identity.
-
Simon Marlow authored
Fixes bug exposed by compiling base w/ -fasm on Windows
-
Simon Marlow authored
Moving functionality that was previously in the nightly build scripts into the top-level Makefile, so it's easier to use from BuildBot.
-
- 22 Jan, 2007 1 commit
-
-
Simon Marlow authored
In the generated code for case-of-variable, test the tag of the scrutinee closure and only enter if it is unevaluated. Also turn *off* vectored returns.
-
- 05 Feb, 2007 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
This version does all its work in a subdirectory (no more destructive 'make distclean' in the current build tree), and results in the exact -src.tar.bz2 distributions that we will put up for download.
-
- 22 Jan, 2007 2 commits
-
-
mrchebas@gmail.com authored
This is only turned on with -O, and probably won't make much difference at the moment, but it will be important for semi-tagging.
-
Simon Marlow authored
In the generated code for case-of-variable, test the tag of the scrutinee closure and only enter if it is unevaluated. Also turn *off* vectored returns.
-
- 19 Jan, 2007 4 commits
-
-
mrchebas@gmail.com authored
-
mrchebas@gmail.com authored
-
mrchebas@gmail.com authored
Only affects -fasm: gcc makes its own decisions about jump tables
-
mrchebas@gmail.com authored
Comparison of literal with narrowed/widened operand: perform the comparison at a different width, as long as the literal is within range. We only do this on x86/x86_64 at the moment, where we have comparisons at different sizes available.
-
- 21 Dec, 2006 2 commits
-
-
Alexey Rodriguez authored
-
Alexey Rodriguez authored
-
- 04 Feb, 2007 1 commit
-
-
lennart@augustsson.net authored
-