summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Read the source file timestamp *before* preprocessing (#6106)Simon Marlow2012-05-221-13/+12
|
* Don't remove the thread from interruptTargetThread on ^C (#6116)Simon Marlow2012-05-221-15/+18
|
* Follow the move of the Word type to ghc-primIan Lynagh2012-05-224-10/+9
|
* Fix ar detectionIan Lynagh2012-05-201-9/+8
|
* Fix dblatex and xml* tool detection on WindowsIan Lynagh2012-05-201-32/+22
| | | | | | | | We now normalise their paths, so that native Windows paths rather than cygwin paths. This means that we are able to execute them from Cabal or python. I've also abstracted out the normalisation code into an m4 function.
* Full validates now install transformers rather than mtlIan Lynagh2012-05-191-3/+4
|
* Use transformers directly, rather than using mtlIan Lynagh2012-05-195-6/+6
| | | | This means we no longer need mtl in a GHC tree.
* Remove a couple of unnecessary lines of CPPIan Lynagh2012-05-181-2/+0
|
* Fix #6109 : error Unknown mingw32 arch.Erik de Castro Lopo2012-05-181-5/+9
|
* Merge branch 'master' of win:c:/m64/reg13/.Ian Lynagh2012-05-182-45/+92
|\
| * More Win64 adjustor fixesIan Lynagh2012-05-181-33/+51
| |
| * Fix the stub C files we generate on Win64Ian Lynagh2012-05-181-6/+19
| |
| * Fix the way the adjustor puts things on the stack on Win64Ian Lynagh2012-05-181-43/+47
| |
| * Fix freeHaskellFunctionPtr on Win64Ian Lynagh2012-05-171-2/+14
| |
* | Wibbles to lunaris's patch for promoted kindsSimon Peyton Jones2012-05-182-14/+13
| |
* | Allow INLINABLE pragmas in THSimon Peyton Jones2012-05-182-21/+45
| | | | | | | | Thanks to mikhail.vorozhtsov for doing the work
* | Applied lunaris's patch to allow promoted types and rich kinds in Template ↵Richard Eisenberg2012-05-185-293/+497
|/ | | | Haskell
* Merge branch 'master' of http://darcs.haskell.org//ghcIan Lynagh2012-05-176-65/+110
|\
| * Set the context_switch flag in yield#Simon Marlow2012-05-161-0/+5
| | | | | | | | | | | | | | yieldThread hasn't been working for a while: unless we set the context_switch flag to indicate that the current time slice is over, the RTS scheduler just runs the same thread again. Spotted by Andreas Voellmy (thanks!).
| * Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-05-1625-138/+268
| |\
| * | Be careful to instantiate kind variables when dealing with functional ↵Simon Peyton Jones2012-05-163-41/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dependencies There were really two bugs a) When the fundep fires we must apply the matching substitution to the kinds of the remaining type vars (This happens in FunDeps.checkClsFD, when we create meta_tvs) b) When instantiating the un-matched type variables we must instantiate their kinds properly (This happens in TcSMonad.instFlexiTcS) This fixes #6068 and #6015 (second reported bug).
| * | When comparing Case expressions, take account of empty alternativesSimon Peyton Jones2012-05-162-24/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the recent change that allows empty case alternatives, we were accidentally saying that these two were equal: Case x _ Int [] Case x _ Bool [] Usually if the alternatives are equal so is the result type -- but not if the alternatives are empty! There are two places to fix: CoreUtils.eqExpr TrieMap with CoreExpr key Fixes #6096, #6097
* | | Don't use stdcall on Win64: It isn't supported; ccall is used insteadIan Lynagh2012-05-163-3/+31
| | |
* | | Merge branch 'master' of http://darcs.haskell.org//ghcIan Lynagh2012-05-1567-1659/+2020
|\ \ \ | | |/ | |/|
| * | Follow changes in Cabal.Paolo Capriotti2012-05-151-1/+3
| | |
| * | Add a fixity environment to InteractiveContext (#2947)Paolo Capriotti2012-05-154-19/+39
| | |
| * | Simplify the behavior of package db flags.Paolo Capriotti2012-05-154-39/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the `-no-user-package` and `-no-global-package` flags affected the "initial" stack only, while `user-package` and `global-packages` appended to the end of the stack. This commit changes the behavior of those flags, so that they are always applied to the stack as a whole. The effect of the GHC_PACKAGE_PATH environment variable has also been changed: terminating it with a separator now adds the default package dbs (user and global) instead of the initial stack.
| * | Update documentation of the package db flags.Paolo Capriotti2012-05-153-31/+109
| | |
| * | Rename package-conf flags to package-db.Paolo Capriotti2012-05-1515-37/+43
| | | | | | | | | | | | | | | | | | | | | | | | Rename package database flags in both GHC and ghc-pkg so that they are consistent with Cabal nomenclature. Add a version check to the build system so that the correct set of package db flags are used when the bootstrapping GHC has version < 7.5.
| * | Add flags to manipulate package db stack (#5977)Paolo Capriotti2012-05-152-45/+60
| | | | | | | | | | | | | | | | | | | | | | | | Introduce new flags to allow any package database stack to be set up. The `-no-user-package-conf` and `-no-global-package-conf` flags remove the corresponding package db from the initial stack, while `-user-package-conf` and `-global-package-conf` push it back on top of the stack.
| * | Tweak the lexer: In particular, improve notFollowedBy and friendsIan Lynagh2012-05-151-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were hitting a problem when reading the LANGUAGE/OPTIONS pragmas from GHC.TypeLits, where the buffer ended "{-". The rules for the start-comment lexeme check that "{-" is not followed by "#", but the test returned False when there was no next character. Therefore we were lexing this as as an open-curly lexeme (only consuming the "{", and not reaching the end of the buffer), which meant the options parser think that it had reached the end of the options. Now we correctly lex as "{-".
| * | Use pprInfixName in pprInfo (#6091)Paolo Capriotti2012-05-141-1/+1
| |/ | | | | | | Surround a name in backticks when printing an infix declaration in GHCi.
| * Fix the the pure unifier so that it unifies kindsSimon Peyton Jones2012-05-142-32/+22
| | | | | | | | | | | | | | | | | | | | | | When unifying two type variables we must unify their kinds. The pure *matcher* was doing so, but the pure *unifier* was not. This patch fixes Trac #6015, where an instance lookup was failing when it should have succeeded. I removed a bunch of code aimed at support sub-kinding. It's tricky, ad-hoc, and I don't think its necessary any more. Anything we can do to simplify the sub-kinding story is welcome!
| * Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-05-112-1/+4
| |\
| | * Handle cases with no alternatives in GHCiSimon Marlow2012-05-111-0/+3
| | | | | | | | | | | | Fixes cgrun045(ghci) amongst others
| | * Fix bug in expandTypeSynonyms that could rarely cause problemsMax Bolingbroke2012-05-101-1/+1
| | |
| * | Delete dead code mkIParamTyConSimon Peyton Jones2012-05-111-6/+0
| | |
| * | Refactor LHsTyVarBndrs to fix Trac #6081Simon Peyton Jones2012-05-1119-366/+422
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is really a small change, but it touches a lot of files quite significantly. The real goal is to put the implicitly-bound kind variables of a data/class decl in the right place, namely on the LHsTyVarBndrs type, which now looks like data LHsTyVarBndrs name = HsQTvs { hsq_kvs :: [Name] , hsq_tvs :: [LHsTyVarBndr name] } This little change made the type checker neater in a number of ways, but it was fiddly to push through the changes.
| * Comments onlySimon Peyton Jones2012-05-101-3/+27
| |
| * Merge branch 'master' of http://darcs.haskell.org//ghcSimon Peyton Jones2012-05-0989-1897/+2480
| |\
| | * Take care not to mix polymorphic and unlifted bindings in a groupSimon Peyton Jones2012-05-091-18/+41
| | | | | | | | | | | | Fixes Trac #6078
| | * Wibbles to 'simplify the SimplCont data type'Simon Peyton Jones2012-05-092-3/+3
| | |
| | * Simplify the SimplCont data typeSimon Peyton Jones2012-05-092-103/+112
| | | | | | | | | | | | | | | | | | | | | * Put the result type in the Stop continuation * No need for the alts type in Select The result is a modest but useful simplification
| | * Merge branch 'ghc-new-flavor'Simon Peyton Jones2012-05-0916-883/+1005
| | |\
| | | * Make fresh variables when decomposing Givensghc-new-flavorSimon Peyton Jones2012-05-091-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This turns out to be important becuase we don't have a form for superclass selection in TcCoercion (we could but we don't). Se comments with xCtFlavor_cache, the Given case.
| | | * Use fresh uniques when unboxing coercions in the desugarerSimon Peyton Jones2012-05-091-26/+33
| | | | | | | | | | | | | | | | | | | | This is kosher, and turns out to be vital when we have more complicate evidence terms.
| | | * CosmeticsSimon Peyton Jones2012-05-092-4/+4
| | | |
| | | * Yet another major refactoring of the constraint solverSimon Peyton Jones2012-05-0716-857/+955
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the result of Simon and Dimitrios doing a code walk through. There is no change in behaviour, but the structure is much better. Main changes: * Given constraints contain an EvTerm not an EvVar * Correspondingly, TcEvidence is a recursive types that uses EvTerms rather than EvVars * Rename CtFlavor to CtEvidence * Every CtEvidence has a ctev_pred field. And use record fields consistently for CtEvidence * The solved-constraint fields of InertSet (namely inert_solved and inert_solved_funeqs) contain CtEvidence, not Ct There is a long cascade of follow-on changes.
| * | | Re-do the "function application discount" (fixes Trac #6048)Simon Peyton Jones2012-05-091-87/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Undoes Max's very aggressive function-inlining change (see comments with Trac #6048) * Resticts function application discount to functions that occur just once in the body. It was the multiple occurrences that led to the exponential behavour in Trac #6048. See Note [Function application discount] in CoreUnfold. Module binary sizes are down 2% on average, which is good. Allocations wobble about a bit, but only on a few benchmarks and not by much, so it seems a price worth paying to avoid exponential behaviour! Allocs Min -1.2% Max +2.8% Geometric Mean +0.0%
| * | | Be a little less aggressive about inlining (fixes Trac #5623)Simon Peyton Jones2012-05-094-39/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When inlining, we are making a copy of the expression, so we have to be careful about duplicating work. Previously we were using exprIsCheap for that, but it is willing to duplicate a cheap primop -- and that is terribly bad if it happens inside some inner array loop (Trac #5623). So now we use a new function exprIsWorkFree. Even then there is some wiggle room: see Note [exprIsWorkFree] in CoreUtils This commit does make wheel-sieve1 allocate a lot more, but we decided that's just tough; it's more important for inlining to be robust about not duplicating work.