summaryrefslogtreecommitdiff
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
* Load the right object files in ghciIan Lynagh2012-10-041-29/+44
| | | | When we have a dynamic ghc, we need to load the dynamic object files
* Fix the recompilation check for dynamic librariesIan Lynagh2012-10-033-11/+18
| | | | | I've put mkSOName in HscTypes for now; I'm not sure what the best place for it is.
* Add a "Dynamic by default" field to the ghc --info outputIan Lynagh2012-10-031-0/+2
|
* Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-10-0387-4673/+5017
|\
| * This big patch re-factors the way in which arrow-syntax is handledSimon Peyton Jones2012-10-0332-908/+1179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All the work was done by Dan Winograd-Cort. The main thing is that arrow comamnds now have their own data type HsCmd (defined in HsExpr). Previously it was punned with the HsExpr type, which was jolly confusing, and made it hard to do anything arrow-specific. To make this work, we now parameterise * MatchGroup * Match * GRHSs, GRHS * StmtLR and friends over the "body", that is the kind of thing they enclose. This "body" parameter can be instantiated to either LHsExpr or LHsCmd respectively. Everything else is really a knock-on effect; there should be no change (yet!) in behaviour. But it should be a sounder basis for fixing bugs.
| * Fix type error in 2c207b6f (Compare the kinds of type variables)Simon Peyton Jones2012-10-031-2/+2
| |
| * Improve constraint solver depth error slightlySimon Peyton Jones2012-10-031-4/+4
| |
| * Give PrimOps a NOINLINE pragma, to suppress silly warnings from dsRuleSimon Peyton Jones2012-10-021-2/+7
| | | | | | | | See Trac #7287
| * Make sure that we check for type errors strictly in a Template Haskell ↵Simon Peyton Jones2012-10-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | splice, even if -fdefer-type-errors is on We're going to run this code, so there's no point in deferring type errors. Worse, TcSplice uses unsafeCoerce (for vevy good reasons), so splicing a type into a place where an expression is expected would yield a seg-fault if we plough on regardless. Fixes Trac #7276
| * Compare the kinds of type variables when comparing typesSimon Peyton Jones2012-10-022-42/+45
| | | | | | | | | | | | | | | | | | This is just a bug that's been around since we introduced polymorphic kinds. The roots are in Type.cmpTypeX, but there was a variant in TcRnDriver.checkBootTyCon, which is where it came up. Fixes Trac #7272
| * Merge branch 'tc-untouchables'Simon Peyton Jones2012-10-0260-3702/+3749
| |\
| | * A few more constraint solver improvementsSimon Peyton Jones2012-10-025-150/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Get rid of the lookupInInerts stage * Re-introduce the flat-cache for flattening type-family equations See Note [Type family equations] in TcSMonad. My previous clever attempt with organising the work list proved too fragile. There's a (static) flag -fno-flat-cache to switch if off, so you can try with and without * Improve the -ddump-cs-trace output * The usual round of refactoring
| | * Improve (and simplify) the short-circuiting of Refl coercionsSimon Peyton Jones2012-10-021-28/+17
| | | | | | | | | | | | | | | | | | The constraint solver sometimes goes to a lot of effort that turns out to be Refl in the end, and avoiding zonking those proofs is a useful optimisation. (Trac #5030)
| | * Comments, and unused importSimon Peyton Jones2012-10-022-5/+5
| | |
| | * Merge branch 'tc-untouchables' of http://darcs.haskell.org/ghc into ↵Simon Peyton Jones2012-10-018-109/+112
| | |\ | | | | | | | | | | | | tc-untouchables
| | | * Modest refactoring (put bumpStepCounter into traceFireTcS, and other simple ↵tc-untouchablesSimon Peyton Jones2012-10-012-47/+37
| | | | | | | | | | | | | | | | things)
| | | * Modest refactoring in TcCanonical (and TcSMonad)Simon Peyton Jones2012-10-012-32/+34
| | | |
| | | * Simplify the reOrient function (no change in behaviour)Simon Peyton Jones2012-10-011-9/+5
| | | |
| | | * Fix an ASSERTSimon Peyton Jones2012-10-011-1/+1
| | | |
| | | * Use System Names for evidence variablesSimon Peyton Jones2012-10-012-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | These variables all have uniformative names like "cobox" or "d". Make them System Names tells the pretty printer to show their uniques even without -dppr-debug. That in turn makes the less-voluminous debug traces *much* more informative.
| | | * Comment out a particularly verbose traceSimon Peyton Jones2012-10-011-1/+3
| | | |
| | | * Improve pretty printing for coercions (exp transistivity chains)Simon Peyton Jones2012-10-011-4/+9
| | | |
| | | * Add missing case in TcUnify.matchExpectedFunKindSimon Peyton Jones2012-09-291-12/+15
| | | | | | | | | | | | | | | | This fixes Trac #7278
| | * | Tracing in TcUnifySimon Peyton Jones2012-10-011-2/+12
| | | |
| | * | Comments about silent superclassesSimon Peyton Jones2012-10-013-5/+14
| | |/
| | * Merge remote-tracking branch 'origin/master' into tc-untouchablesSimon Peyton Jones2012-09-2852-1553/+1044
| | |\
| | * | Refactor the handling of kind errorsSimon Peyton Jones2012-09-2810-293/+185
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Treat kind-equality constraints as *derived* equalities, with no evidence. That is really what they are at the moment. * Get rid of EvKindCast and friends. * Postpone kind errors properly to the constraint solver (lots of small knock-on effects) I moved SwapFlag to BasicTypes as well
| | * | Better ASSERT messageSimon Peyton Jones2012-09-281-1/+1
| | | |
| | * | Comments onlySimon Peyton Jones2012-09-281-1/+1
| | | |
| | * | Fix kind unification in the special rule for ($)Simon Peyton Jones2012-09-281-8/+16
| | | |
| | * | Comments onlySimon Peyton Jones2012-09-281-1/+1
| | | |
| | * | Wibble to debug printSimon Peyton Jones2012-09-281-1/+1
| | | |
| | * | Improve pretty printing for coercionsSimon Peyton Jones2012-09-281-1/+1
| | | |
| | * | Fiddling with kind errorsSimon Peyton Jones2012-09-218-176/+254
| | | |
| | * | Fix an outright bug in my "left/right" stuff,Simon Peyton Jones2012-09-201-84/+65
| | | | | | | | | | | | | | | | | | | | and refactor canEqLeafTyVarEq along the same lines as our earlier refactoring of canEqLeafFunEq
| | * | Comments onlySimon Peyton Jones2012-09-201-1/+1
| | | |
| | * | Merge remote-tracking branch 'origin/master' into tc-untouchablesSimon Peyton Jones2012-09-2022-248/+281
| | |\ \
| | * \ \ Merge remote-tracking branch 'origin/master' into tc-untouchablesSimon Peyton Jones2012-09-1838-435/+563
| | |\ \ \
| | * | | | Make sure that even insoluble constraints are fully substitutedSimon Peyton Jones2012-09-182-34/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main change is that canEqFailure does substitution: see Note [Make sure that insolubles are fully rewritten] in TcCanonical. However DV and I also found a way to simplify 'flatten' a bit, by passing a CtFlavour instead of CtEvidence.
| | * | | | Signatures and commentsSimon Peyton Jones2012-09-182-1/+2
| | | | | |
| | * | | | Be careful about kinds when eta-expanding AppCoSimon Peyton Jones2012-09-181-2/+25
| | | | | | | | | | | | | | | | | | | | | | | | See Note [Eta for AppCo] in OptCoercion
| | * | | | Undo making Any into a type family, for nowSimon Peyton Jones2012-09-182-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Making Any a type family is the right thing to do, but it messes up the proxy kind arguments in TypeLits and Singletons, so I'm backing it out for now. More thought required!
| | * | | | Make a start towards eta-rules and injective familiesSimon Peyton Jones2012-09-1816-87/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make Any into a type family (which it should always have been) This is to support the future introduction of eta rules for product types (see email on ghc-users title "PolyKind issue" early Sept 2012) * Add the *internal* data type support for (a) closed type families [so that you can't give type instance for 'Any'] (b) injective type families [because Any is really injective] This amounts to two boolean flags on the SynFamilyTyCon constructor of TyCon.SynTyConRhs. There is some knock-on effect, but all of a routine nature. It remains to offer source syntax for either closed or injective families.
| | * | | | Implement 'left' and 'right' coercionsSimon Peyton Jones2012-09-1715-33/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch finally adds 'left' and 'right' coercions back into GHC. Trac #7205 gives the details. The main change is to add a new constructor to Coercion: data Coercion = ... | NthCo Int Coercion -- OLD, still there | LRCo LeftOrRight Coercion -- NEW data LeftOrRight = CLeft | CRight Plus: * Similar change to TcCoercion * Use LRCo when decomposing AppTys * Coercion optimisation needs to handle left/right The rest is just knock-on effects.
| | * | | | Tidy up and simplify simplifyRule, pls adding some other commentsSimon Peyton Jones2012-09-171-9/+19
| | | | | |
| | * | | | Tidy up and simplify TcMType.zonkFlats (discussion between DV and SLPJ)Simon Peyton Jones2012-09-171-41/+55
| | | | | |
| | * | | | Remove cc_ty from CIrredCan and cc_hole_ty from CHoleCanSimon Peyton Jones2012-09-179-57/+59
| | | | | | | | | | | | | | | | | | | | | | | | A simple refactoring with no complicated fiddling.
| | * | | | Another refactoring of constraintsSimon Peyton Jones2012-09-1713-887/+695
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Rejig CtLoc * CtLoc is now *not* parameterised (much simpler) * CtLoc includes the "depth" of the constraint * CtLoc includes the TcLclEnv at the birthplace That gives (a) the SrcSpan, (b) the [ErrCtxt] (c) the [TcIdBinder] * The CtLoc of a constraint is no longer in its CtEvidence * Where we passed 'depth' before, now we pass CtLoc 2. Some significant refactoring in TcErrors * Get rid of cec_extra * Traverse every constraint, so that we can be sure to generate bindings where necessary. (This was really a lurking bug before.) 3. Merge zonking into TcCanonical. This turned out to be almost trivial; just a small change to TcCanonical.flattenTyVar. The nice consequence is that we don't need to zonk a constraint before solving it; instead it gets zonked "on the fly" as it were.
| | * | | | Improve the binding location of class methods (I think)Simon Peyton Jones2012-09-174-41/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've totally forgotten what this patch is fixing, but it's all about getting the right source location for class methods. It's fairly minor, but annoying that I can't connect it with a Trac ticket
| | * | | | Comments about how the untouchables stuff worksSimon Peyton Jones2012-09-171-26/+85
| | | | | |