summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Wibble to comment (to keep Haddock happy)Simon Peyton Jones2012-04-251-1/+1
| | | |
* | | | Merge remote-tracking branch 'origin/master'Simon Peyton Jones2012-04-2511-102/+671
|\ \ \ \ | | |/ / | |/| |
| * | | Add experimental GHCi monad.David Terei2012-04-246-10/+105
| | |/ | |/| | | | | | | | | | | | | | | | | | | Modification of previous commit: e0e99f9948c1eac82cf69dd3cc30cb068e42d45e Allows setting which monad GHCi runs statements in. Unsupported at this stage.
| * | Replaced tabsGabriele Keller2012-04-251-14/+14
| | |
| * | Vectorisation AvoidanceGabriele Keller2012-04-242-183/+328
| | | | | | | | | | | | Switched off by default. Use -favoid-vect to activate
| * | Partial VectoriasationGabriele Keller2012-04-243-26/+354
| | |
| * | Fixed typo (wrong max constant) in Initiialise.hsGabriele Keller2012-04-241-1/+1
| |/
| * Add symbol declaration for __fixunsdfdi in the linker.Paolo Capriotti2012-04-241-1/+2
| |
* | Report deprecations at occurrence sites, not once per moduleSimon Peyton Jones2012-04-254-109/+105
|/ | | | Fixes Trac #5867, and is generally nicer
* Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-04-2413-83/+184
|\
| * Merge nb:ghc/git/ghcIan Lynagh2012-04-238-49/+146
| |\
| | * Add an X86/amd64 implementation for quotRemWord2Ian Lynagh2012-04-211-20/+50
| | |
| | * Add a quotRemWord2 primopIan Lynagh2012-04-218-29/+94
| | | | | | | | | | | | | | | | | | | | | | | | It allows you to do (high, low) `quotRem` d provided high < d. Currently only has an inefficient fallback implementation.
| | * Add a couple of commentsIan Lynagh2012-04-201-0/+2
| | |
| * | Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-04-2399-3391/+4766
| |\ \
| | * | ghci: write exceptions to stderr (#5980)Paolo Capriotti2012-04-231-5/+7
| | | |
| | * | Sort instances by location before printing themSimon Peyton Jones2012-04-233-27/+31
| | | | | | | | | | | | | | | | Reduces wobble in error messages, and is better for the programmer
| * | | Remove an unused make variableIan Lynagh2012-04-011-2/+0
| | | |
* | | | Tiny refactoring; no change in behaviourSimon Peyton Jones2012-04-221-1/+1
| | | |
* | | | Respect kind-variable scoping when instantiating dfunsSimon Peyton Jones2012-04-223-47/+48
| | | | | | | | | | | | | | | | Fixes Trac #6020
* | | | Empty data types should not be "trimmed" by TidyPgmSimon Peyton Jones2012-04-221-9/+17
| |/ / |/| | | | | | | | | | | That in turn means that you can derive Show etc in other modules, fixing Trac #6031
* | | OS X: disable bootstrapping info for 'ar'Manuel M T Chakravarty2012-04-211-3/+10
| | | | | | | | | | | | Xcode 4.3 installs the command line tools in a different location as earlier versions of Xcode. With the bootstrapping info, the build fails if the bootstrap compiler was built with an older version of Xcode.
* | | Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-04-202-16/+22
|\ \ \
| * \ \ Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-04-2042-1192/+1362
| |\ \ \
| * | | | Fix worker/wrapper for CPR functionsSimon Peyton Jones2012-04-132-16/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A long-standing and egregious bug in the worker/wrapper code meant that some functions with the CPR property weren't getting a CPR w/w. And that had the effect of making a tail-recursive function not tail recursive. As well as increasing allocation. Fixes Trac #5920, and #5997. Nofib results (highlights): Program Size Allocs Runtime Elapsed TotalMem -------------------------------------------------------------------------------- boyer2 -0.1% -15.3% 0.01 0.01 +0.0% mandel2 -0.0% -8.1% 0.01 0.01 +0.0% para -0.1% -11.8% -7.9% -7.8% +0.0% -------------------------------------------------------------------------------- Min -0.1% -15.3% -7.9% -7.8% -33.3% Max +0.0% +0.2% +6.3% +6.3% +3.7% Geometric Mean -0.0% -0.4% +0.1% +0.1% -0.5% Looks like a clear win. And I have not even recompiled the libraries, so it'll probably be a bit better in the ed.
* | | | | Move free-var info from InstDecl to FamInstDeclSimon Peyton Jones2012-04-207-52/+63
| | | | |
* | | | | Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-04-2040-1014/+1108
|\ \ \ \ \ | | |/ / / | |/| | |
| * | | | Merge branch 'master' of http://darcs.haskell.org//ghcSimon Peyton Jones2012-04-2012-444/+443
| |\ \ \ \
| | * | | | Adding -ddump-avoid-vect option for vectorisation avoidance diagnosticsManuel M T Chakravarty2012-04-201-0/+2
| | | | | |
| | * | | | Add newline to the end of fileJose Pedro Magalhaes2012-04-192-2/+4
| | | |_|/ | | |/| |
| | * | | Fix operand expansion function.Paolo Capriotti2012-04-161-57/+48
| | | | |
| | * | | Implemented word-sized addressing of pointers and literals.Paolo Capriotti2012-04-163-56/+51
| | | | |
| | * | | Bytecode assembler refactoring.Paolo Capriotti2012-04-162-331/+278
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a free monad to specify the assembling procedure, so that it can be run multiple times without producing side effects. This paves the way for a more general implementation of variable-sized instructions, since we need to dry-run the bytecode assembler to determine the size of the operands for some instructions.
| | * | | Export State monad transformer from ByteCodeItbls.Paolo Capriotti2012-04-161-6/+15
| | | | |
| | * | | Support large SLIDE instructions.Paolo Capriotti2012-04-161-44/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bytecode generator used to keep track of the stack depth with a 16-bit counter, which could overflow for very large BCOs, resulting in incorrect bytecode. This commit switches to a word-sized counter, and eagerly panics whenever an operand is too big, instead of truncating the result. This allows us to work around the 16-bit limitation in the case of SLIDE instructions, since we can simply factor it into multiple SLIDEs with smaller arguments.
| | * | | Use monotonic time function for darwin (#5865)Paolo Capriotti2012-04-162-0/+14
| | | | |
| | * | | Use monotonic clock in Select.c (#5865)Paolo Capriotti2012-04-164-31/+48
| | | | |
| * | | | Do SCC on instance declarations (fixes Trac #5715)Simon Peyton Jones2012-04-2016-103/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The trouble here is that given {-# LANGUAGE DataKinds, TypeFamilies #-} data instance Foo a = Bar (Bar a) we want to get a sensible message that we can't use the promoted 'Bar' constructor until after its definition; it's a staging error. Bud the staging mechanism that we use for vanilla data declarations don't work here. Solution is to perform strongly-connected component analysis on the instance declarations. But that in turn means that we need to track free-variable information on more HsSyn declarations, which is why so many files are touched. All the changes are boiler-platey except the ones in TcInstDcls.
| * | | | Simplify the typechecking of RULESSimon Peyton Jones2012-04-164-228/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not only does this fix Trac #5853, but it also eliminate the horrid SimplEqsOnly part of the constraint simplifier. The new plan is described in TcRules Note [Simplifying RULE constraints]
| * | | | Simplify construction of equality predicatesSimon Peyton Jones2012-04-163-15/+12
| | | | | | | | | | | | | | | | | | | | | | | | | There was an ASSERT which does not hold during type checking (and should not) which is later checked by Core Lint
| * | | | Merge branch 'master' of http://darcs.haskell.org//ghcSimon Peyton Jones2012-04-1327-397/+723
| |\ \ \ \ | | |/ / /
| * | | | Allow kind-variable binders in type signaturesSimon Peyton Jones2012-04-1313-226/+283
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the last major addition to the kind-polymorphism story, by allowing (Trac #5938) type family F a -- F :: forall k. k -> * data T a -- T :: forall k. k -> * type instance F (T (a :: Maybe k)) = Char The new thing is the explicit 'k' in the type signature on 'a', which itself is inside a type pattern for F. Main changes are: * HsTypes.HsBSig now has a *pair* (kvs, tvs) of binders, the kind variables and the type variables * extractHsTyRdrTyVars returns a pair (kvs, tvs) and the function itself has moved from RdrHsSyn to RnTypes * Quite a bit of fiddling with TcHsType.tcHsPatSigType and tcPatSig which have become a bit simpler. I'm still not satisfied though. There's some consequential fiddling in TcRules too. * Removed the unused HsUtils.collectSigTysFromPats There's a consequential wibble to Haddock too
* | | | | Comments onlySimon Peyton Jones2012-04-201-3/+11
| | | | |
* | | | | Allow overlaps when -XIncoherentInstances is in forceSimon Peyton Jones2012-04-131-8/+10
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | This change allows a top-level instance to be used even if there is a (potentially) overlapping local given. Which isn't fab, but it is what IncoherentInstances is *for*. This fixes the bug part of Trac #6002.
* | | | Untabify HsTypesSimon Peyton Jones2012-04-131-91/+91
| | | |
* | | | Revert "Added ':runmonad' command to GHCi"Simon Peyton Jones2012-04-139-207/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Two problems, for now at any rate a) Breaks the build with lots of errors like No instance for (Show (IO ())) arising from a use of `print' b) Discussion of the approache hasn't converged yet (Simon M had a number of suggestions) This reverts commit eecd7c98c1f079c14d99ed831dff33a48ee45e67.
* | | | Added ':runmonad' command to GHCiDavid Terei2012-04-129-119/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This command allows you to lift user stmts in GHCi into an IO monad that implements the GHC.GHCi.GHCiSandboxIO type class. This allows for easy sandboxing of GHCi using :runmonad and Safe Haskell. Longer term it would be nice to allow a more general model for the Monad than GHCiSandboxIO but delaying this for the moment.
* | | | More imporvements to optimisation flag docs.David Terei2012-04-121-61/+163
| | | |
* | | | Don't document '-freg-liveness' or '-fllvm-tbaa', developer flagsDavid Terei2012-04-121-26/+0
| |/ / |/| |
* | | Fix crash with tiny initial stack size (#5993)Simon Marlow2012-04-121-2/+2
| | |