- 03 Oct, 2012 3 commits
-
-
Simon Peyton Jones authored
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.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
- 02 Oct, 2012 10 commits
-
-
Simon Peyton Jones authored
See Trac #7287
-
Simon Peyton Jones authored
Make sure that we check for type errors strictly in a Template Haskell 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
-
Simon Peyton Jones authored
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
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
* 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
-
Simon Marlow authored
-
shelarcy authored
Signed-off-by:
Gabor Greif <ggreif@gmail.com>
-
Simon Peyton Jones authored
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)
-
Simon Peyton Jones authored
-
- 01 Oct, 2012 10 commits
-
-
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
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.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
- 29 Sep, 2012 1 commit
-
-
Simon Peyton Jones authored
This fixes Trac #7278
-
- 28 Sep, 2012 8 commits
-
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
* 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
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
- 27 Sep, 2012 4 commits
-
-
ian@well-typed.com authored
-
ian@well-typed.com authored
-
ian@well-typed.com authored
Rather than having a separate foo_INSTALL_SHELL_WRAPPER variable, we just use foo_INSTALL && foo_SHELL_WRAPPER
-
ian@well-typed.com authored
-
- 26 Sep, 2012 4 commits
-
-
ian@well-typed.com authored
-
Edward Z. Yang authored
The current fix is relatively dumb as far as where to add HpLim checks: it will always perform a check unless we know that we're returning from a closure or we are doing a non let-no-escape case analysis. The performance impact on the nofib suite looks like this: Min +5.7% -0.0% -6.5% -6.4% -50.0% Max +6.3% +5.8% +5.0% +5.5% +0.8% Geometric Mean +6.2% +0.1% +0.5% +0.5% -0.8% Overall, the executable bloat is the biggest problem, so we keep the old omit-yields optimization on by default. Remember that if you need an interruptibility guarantee, you need to recompile all of your libraries with -fno-omit-yields. A better fix would involve only inserting the yields necessary to break loops; this is left as future work. Signed-off-by:
Edward Z. Yang <ezyang@mit.edu>
-
ian@well-typed.com authored
It's no longer needed in order to build the compiler itself.
-
Simon Marlow authored
-