summaryrefslogtreecommitdiff
path: root/compiler/simplCore/SetLevels.lhs
Commit message (Collapse)AuthorAgeFilesLines
...
* Comments onlysimonpj@microsoft.com2008-09-171-2/+3
|
* Don't try to float type-letssimonpj@microsoft.com2008-09-141-1/+3
| | | | | | A type let shouldn't really occur in SetLevels, but if it does, this patch makes sure it is left alone.
* Remove CoreSyn SOURCE importsMax Bolingbroke2008-08-071-9/+9
|
* Make SetLevels warning-freeIan Lynagh2008-05-041-40/+42
|
* Transfer strictness and arity info when abstracting over type variablessimonpj@microsoft.com2008-04-111-5/+8
| | | | | | | | | | See Note [transferPolyIdInfo] in Id.lhs, and test eyeball/demand-on-polymorphic-floatouts.hs Max Bolingbroke discovered that we were gratuitiously losing strictness info. This simple patch fixes it. But see the above note for things that are still discarded: worker info and rules.
* Monadify simplCore/SetLevels: use do, return, standard monad functions and ↵Twan van Laarhoven2008-01-171-113/+102
| | | | MonadUnique
* Wibble to SetLevels.abstractVarssimonpj@microsoft.com2008-01-181-5/+7
| | | | | | | | I've gotten this wrong more than once. Hopefully this has it nailed. The issue is that in float-out we must abstract over the correct variables.
* In float-out, make sure we abstract over the type variables in the kind of a ↵simonpj@microsoft.com2008-01-161-13/+18
| | | | | | | | | | coercion I can't remember where this bug showed up, but we were abstracting over a coercion variable (co :: a ~ T), without also abstracting over 'a'. The fix is simple.
* Fix Trac #2018: float-out was ignoring the kind of a coercion variablesimonpj@microsoft.com2008-01-071-19/+22
| | | | | | | | | | | | | The float-out transformation must handle the case where a coercion variable is free, which in turn mentions type variables in its kind. Just like a term variable really. I did a bit of refactoring at the same time. Test is tc241 MERGE to stable branch
* Improve documentation of INLINE, esp its interactions with other transformationssimonpj@microsoft.com2007-11-121-2/+2
|
* Fix CodingStyle#Warnings URLsIan Lynagh2007-09-041-1/+1
|
* Use OPTIONS rather than OPTIONS_GHC for pragmasIan Lynagh2007-09-031-2/+2
| | | | | | | 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.
* Add {-# OPTIONS_GHC -w #-} and some blurb to all compiler modulesIan Lynagh2007-09-011-0/+7
|
* Typo in commentssimonpj@microsoft.com2007-06-051-1/+1
|
* Improve full laziness by floating allocations out of value lambdassimonpj@microsoft.com2007-05-091-16/+46
| | | | | | | | | | | | | | | | | This patch simplifies the code slightly, and simultaneously improves full laziness by floating allocations (lambdas, constructor apps) out of loops. See Note [Escaping a value lambda] in SetLevels, which explains. There's a test that shows it up: simplrun009 This relevant to SpecConstr, because a call looks like f lvl instead of f (\x. blah) and the latter is easier to match in a robust way.
* Reset the demand info on bindings going to top level (since they cannot be ↵simonpj@microsoft.com2007-02-021-3/+5
| | | | strict)
* Fix several bugs related to finding free variablessimonpj@microsoft.com2007-01-031-2/+1
| | | | | | | | | | | Now that coercion variables mention types, a type-lambda binder can have free variables. This patch adjusts the free-variable finder to take account of this, by treating Ids and TyVars more uniformly. In addition, I fixed a bug in the specialiser that was missing a free type variable in a binder. And a bug in tyVarsOfInst that was missing the type variables in the kinds of the quantified tyvars.
* Massive patch for the first months work adding System FC to GHC #30Manuel M T Chakravarty2006-09-151-0/+4
| | | | | | | | | | | Fri Aug 4 18:13:20 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Massive patch for the first months work adding System FC to GHC #30 Broken up massive patch -=chak Original log message: This is (sadly) all done in one patch to avoid Darcs bugs. It's not complete work... more FC stuff to come. A compiler using just this patch will fail dismally.
* Reorganisation of the source treeSimon Marlow2006-04-071-0/+847
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.