- 07 Feb, 2008 1 commit
-
-
Ian Lynagh authored
If these modules use UniqFM then we get a stack overflow when compiling modules that use fundeps. I haven't tracked down the actual cause.
-
- 04 Sep, 2007 1 commit
-
-
Ian Lynagh authored
-
- 03 Sep, 2007 1 commit
-
-
Ian Lynagh authored
Older GHCs can't parse OPTIONS_GHC. This also changes the URL referenced for the -w options from WorkingConventions#Warnings to CodingStyle#Warnings for the compiler modules.
-
- 01 Sep, 2007 1 commit
-
-
Ian Lynagh authored
-
- 10 Nov, 2006 1 commit
-
-
simonpj@microsoft.com authored
-
- 11 Oct, 2006 1 commit
-
-
Simon Marlow authored
This patch is a start on removing import lists and generally tidying up the top of each module. In addition to removing import lists: - Change DATA.IOREF -> Data.IORef etc. - Change List -> Data.List etc. - Remove $Id$ - Update copyrights - Re-order imports to put non-GHC imports last - Remove some unused and duplicate imports
-
- 07 Apr, 2006 1 commit
-
-
Simon Marlow authored
Most of the other users of the fptools build system have migrated to Cabal, and with the move to darcs we can now flatten the source tree without losing history, so here goes. The main change is that the ghc/ subdir is gone, and most of what it contained is now at the top level. The build system now makes no pretense at being multi-project, it is just the GHC build system. No doubt this will break many things, and there will be a period of instability while we fix the dependencies. A straightforward build should work, but I haven't yet fixed binary/source distributions. Changes to the Building Guide will follow, too.
-
- 18 Mar, 2005 1 commit
-
-
simonmar authored
Flags cleanup. Basically the purpose of this commit is to move more of the compiler's global state into DynFlags, which is moving in the direction we need to go for the GHC API which can have multiple active sessions supported by a single GHC instance. Before: $ grep 'global_var' */*hs | wc -l 78 After: $ grep 'global_var' */*hs | wc -l 27 Well, it's an improvement. Most of what's left won't really affect our ability to host multiple sessions. Lots of static flags have become dynamic flags (yay!). Notably lots of flags that we used to think of as "driver" flags, like -I and -L, are now dynamic. The most notable static flags left behind are the "way" flags, eg. -prof. It would be nice to fix this, but it isn't urgent. On the way, lots of cleanup has happened. Everything related to static and dynamic flags lives in StaticFlags and DynFlags respectively, and they share a common command-line parser library in CmdLineParser. The flags related to modes (--makde, --interactive etc.) are now private to the front end: in fact private to Main itself, for now.
-
- 17 Nov, 2003 1 commit
-
-
simonmar authored
GC dead code and export list entries.
-
- 22 Apr, 2002 1 commit
-
-
simonpj authored
CPR control 1. Remove -fno-cpr, add -fcpr-off which is a simple static flag for switching the new CPR analysis off altogether. (The "-fno" machinery is rather complicated.) 2. Rejig SimplCore a little so that the "old strictness analyser" runs both the old strictness analyser and the old CPR analyser, which makes it more like the new strictness/CPR analyser. (How much longer we keep the old strictness/CPR analyser in the compiler at all I don't know. It's just for comparision purposes when we write the paper.)
-
- 05 Apr, 2002 1 commit
-
-
simonpj authored
Heal the head
-
- 07 Jan, 2002 1 commit
-
-
simonpj authored
Dont print (Prod [AAA]) same as (Poly Abs)
-
- 05 Dec, 2001 1 commit
-
-
simonmar authored
Add seqDemand, seqDemands, seqDmdType and seqStrictSig.
-
- 19 Nov, 2001 1 commit
-
-
simonpj authored
-------------------------------------- Yet another cut at the DmdAnal domains -------------------------------------- This version of the domain for demand analysis was developed in discussion with Peter Sestoft, so I think it might at last be more or less right! Our idea is mentally to separate strictness analysis from absence and boxity analysis Then we combine them back into a single domain. The latter is all you see in the compiler (the Demand type, as before) but we understand it better now.
-
- 25 Oct, 2001 2 commits
-
-
simonpj authored
Move defer from NewDemand to DmdAnal
-
sof authored
- Pet peeve removal / code tidyup, replaced various sub-optimal uses of 'length' with something a bit better, i.e., replaced the following patterns * length as `cmpOp` length bs * length as `cmpOp` val -- incl. uses where val == 1 and val == 0 * {take,drop,splitAt} (length as) bs * length [ () | pat <- as ] with uses of misc Util functions. I'd be surprised if there's a noticeable reduction in running times as a result of these changes, but every little bit helps. [ The changes have been tested wrt testsuite/ - I'm seeing a couple of unexpected breakages coming from CorePrep, but I'm currently assuming that these are due to other recent changes. ] - compMan/CompManager.lhs: restored 4.08 compilability + some code cleanup. None of these changes are HEADworthy.
-
- 18 Oct, 2001 1 commit
-
-
simonpj authored
Fix two minor bugs in DmdAnal, and add comments. The bugs were both in dmdTransform, the dataConId case * The test for saturation should be against call_depth not agaainst (length ds). * The arg_ds computation for k=Keep should be with 'both' not 'lub'.
-
- 04 Oct, 2001 1 commit
-
-
simonpj authored
Heal the HEAD
-
- 03 Oct, 2001 1 commit
-
-
simonpj authored
Add comments, and nuke strictness info in CoreTidy if totally boring
-
- 07 Sep, 2001 2 commits
-
-
simonpj authored
Make isStrictDmd give the right answer
-
simonpj authored
------------------------ Fix the demand analyser ------------------------ A spiffy new domain for demands, and definitions for lub/both which are actually monotonic. Quite a bit of related jiggling around. One of the original motivations was to do with functions like: sum n [] = n sum n (x:xs) = sum (n+x) xs Even though n is returned boxed from the first case, we don't want to get strictness S(L)V -> T because that means we pass the box for n, and that is TERRIBLE. So the new version errs on the side of unboxing, more like the forwards analyser, and only passes the box if it is *definitely* needed, rather than if it *may* be needed.
-
- 25 Jul, 2001 1 commit
-
-
simonpj authored
Change pretty-print of DmdType slightly
-
- 24 Jul, 2001 2 commits
-
-
simonpj authored
A major demand-analyser fix, which made it say something was absent when it wasn't at all. Here's the comment from the Case equation of dmdAnal. -- Figure out whether the case binder is used, and use -- that to set the keepity of the demand. This is utterly essential. -- Consider f x = case x of y { (a,b) -> k y a } -- If we just take scrut_demand = U(L,A), then we won't pass x to the -- worker, so the worker will rebuild -- x = (a, absent-error) -- and that'll crash.
-
simonpj authored
Keep the printed stuff for Demand and DmdResult separate, else we can get confused when parsing a strictness signature. For example, previously LX could have been parsed as L -> X or as LX -> T Urk! I've taken the simple path of making DmdResults print in lower case. Thus Lx means L -> x LX means LX -> t
-
- 23 Jul, 2001 1 commit
-
-
simonpj authored
--------------------------------- Switch to the new demand analyser --------------------------------- This commit makes the new demand analyser the main beast, with the old strictness analyser as a backup. When DEBUG is on, the old strictness analyser is run too, and the results compared. WARNING: this isn't thorougly tested yet, so expect glitches. Delay updating for a few days if the HEAD is mission critical for you. But do try it out. I'm away for 2.5 weeks from Thursday, so it would be good to shake out any glaring bugs before then.
-
- 19 Jul, 2001 1 commit
-
-
simonpj authored
Next cut at the demand analyser
-
- 17 Jul, 2001 1 commit
-
-
simonpj authored
-------------------------------- First cut at the demand analyser -------------------------------- This demand analyser is intended to replace the strictness/absence analyser, and the CPR analyser. This commit adds it to the compiler, but in an entirely non-invasive way. If you build the compiler without -DDEBUG, you won't get it at all. If you build the compiler with -DDEBUG, you'll get the demand analyser, but the existing strictness analyser etc are still there. All the demand analyser does is to compare its output with the existing stuff and report differences. There's no cross-module stuff for demand info yet. The strictness/demand info is put the IdInfo as newStrictnessInfo newDemandInfo Eventually we'll remove the old ones. Simon
-