summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Change -dppr-user-length from a static to a dynamic flagIan Lynagh2012-06-147-19/+29
|
* Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-06-1439-480/+309
|\
| * Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-06-1313-108/+90
| |\
| * | Simplify the implementation of Implicit ParametersSimon Peyton Jones2012-06-1339-480/+309
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch re-implements implicit parameters via a class with a functional dependency: class IP (n::Symbol) a | n -> a where ip :: a This definition is in the library module GHC.IP. Notice how it use a type-literal, so we can have constraints like IP "x" Int Now all the functional dependency machinery works right to make implicit parameters behave as they should. Much special-case processing for implicit parameters can be removed entirely. One particularly nice thing is not having a dedicated "original-name cache" for implicit parameters (the nsNames field of NameCache). But many other cases disappear: * BasicTypes.IPName * IPTyCon constructor in Tycon.TyCon * CIPCan constructor in TcRnTypes.Ct * IPPred constructor in Types.PredTree Implicit parameters remain special in a few ways: * Special syntax. Eg the constraint (IP "x" Int) is parsed and printed as (?x::Int). And we still have local bindings for implicit parameters, and occurrences thereof. * A implicit-parameter binding (let ?x = True in e) amounts to a local instance declaration, which we have not had before. It just generates an implication contraint (easy), but when going under it we must purge any existing bindings for ?x in the inert set. See Note [Shadowing of Implicit Parameters] in TcSimplify * TcMType.sizePred classifies implicit parameter constraints as size-0, as before the change There are accompanying patches to libraries 'base' and 'haddock' All the work was done by Iavor Diatchki
* | | Rename Coverage.dflags to Coverage.tte_dflagsIan Lynagh2012-06-141-3/+3
| | | | | | | | | | | | | | | The record field was confusingly using the same name that the value normally uses.
* | | Fix whitespace in deSugar/Coverage.lhsIan Lynagh2012-06-141-231/+224
| | |
* | | Stop exporting, and stop using, some deprecated functionsIan Lynagh2012-06-133-13/+6
| | |
* | | Use 'ppr' rather than 'pprCLabel platform'Ian Lynagh2012-06-131-19/+19
| | | | | | | | | | | | Means we can stop passing platform around as much.
* | | Remove more redundant Platform argumentsIan Lynagh2012-06-131-25/+24
| | |
* | | Remove more redundant Platform argumentsIan Lynagh2012-06-133-12/+9
| | |
* | | Remove some more Platform argumentsIan Lynagh2012-06-134-16/+9
| |/ |/|
* | Remove more unused Platform argumentsIan Lynagh2012-06-134-12/+9
| |
* | Remove some unnecessary platform argumentsIan Lynagh2012-06-139-96/+81
|/
* Add missing fileIan Lynagh2012-06-131-0/+7
|
* Follow spelling fixesIan Lynagh2012-06-131-5/+5
|
* Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-06-1314-206/+298
|\ | | | | | | | | Fix conflicts in: compiler/main/DynFlags.hs
| * tweak documentation of mdo/recRoss Paterson2012-06-121-18/+25
| |
| * Report unusable UNPACK warnings even when -O is off (#3966)Simon Marlow2012-06-121-3/+8
| |
| * Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-06-125-37/+38
| |\
| | * fix spelling: "infered" -> "inferred"Simon Marlow2012-06-115-37/+38
| | |
| * | Revive 'mdo' expressions, per discussion in Trac #4148Simon Peyton Jones2012-06-126-137/+178
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: - mdo expressions are enabled by RecursiveDo pragma - mdo expressions perform full segmentation - 'rec' groups inside 'do' are changed so they do *not* perform any segmentation. - Both 'mdo' and 'rec' are enabled by 'RecursiveDo' 'DoRec' is deprecated in favour of 'RecursiveDo' (The 'rec' keyword is also enabled by 'Arrows', as now.) Thanks to Levent for doing all the work
| * Attempt to fix the bytecode generator for unboxed tuples, given the latest ↵Max Bolingbroke2012-06-092-34/+72
| | | | | | | | changes to unboxed tuple support
| * Don't use 64-bit support functions on MIPS N32.Michał Masłowski2012-06-091-1/+1
| | | | | | | | | | It uses native 64-bit instructions instead of these, despite having 32-bit pointers.
* | Remove lots of commented out 'in' keywordsIan Lynagh2012-06-136-43/+0
| |
* | Tweak the way UsageErrors are constructedIan Lynagh2012-06-131-1/+2
| | | | | | | | | | Using 'unlines' meant that we get a trailing newline, which gave different output.
* | Remove PlatformOutputableIan Lynagh2012-06-1333-328/+285
| | | | | | | | | | We can now get the Platform from the DynFlags inside an SDoc, so we no longer need to pass the Platform in.
* | Whitespace only in nativeGen/RegAlloc/Graph/Main.hsIan Lynagh2012-06-131-306/+299
| |
* | Make tracingDynFlags slightly more definedIan Lynagh2012-06-123-11/+18
| | | | | | | | | | In particular, fields like 'flags' are now set to the default, so at least they will work to some extent.
* | Pass DynFlags down to pprDefiniteTraceIan Lynagh2012-06-122-6/+6
| |
* | Add DynFlags to the SDoc stateIan Lynagh2012-06-124-40/+42
| |
* | Use SDoc rather than Doc in the native gensIan Lynagh2012-06-129-279/+236
| | | | | | | | This avoid lots of converting back and forth between the two types.
* | Use SDoc rather than Doc in LLVMIan Lynagh2012-06-126-74/+72
| | | | | | | | | | In particular, this makes life simpler when we want to use a general GHC SDoc in the middle of some LLVM.
* | Pass DynFlags down to pprDebugAndThenIan Lynagh2012-06-122-10/+10
| |
* | Remove unused showsPrecSDocIan Lynagh2012-06-121-4/+1
| |
* | Pass DynFlags down to showSDocDumpOneLineIan Lynagh2012-06-122-10/+14
| |
* | Pass DynFlags down to showSDocDebugIan Lynagh2012-06-127-74/+83
| |
* | Pass DynFlags down to showSDocIan Lynagh2012-06-1248-320/+434
| |
* | Remove unused showRdrNameIan Lynagh2012-06-121-6/+0
| | | | | | | | It was equivalent to showPpr anyway.
* | GhcApiError now contains a String, not an SDocIan Lynagh2012-06-122-7/+10
| |
* | Use showPpr in a few more placesIan Lynagh2012-06-122-3/+4
| |
* | Avoid a needless trip via SDoc when showing a UniqueIan Lynagh2012-06-121-3/+1
| |
* | Store short error message text as a stringIan Lynagh2012-06-121-3/+5
| | | | | | | | | | | | | | We also store the Doc still, although we don't have to; we could just convert back again, at the cost of some inefficiency. But we do need the String, so that we can print it in the Show instance.
* | Pass DynFlags down to mk_err_msgIan Lynagh2012-06-1213-103/+116
| |
* | Remove an unused Show instanceIan Lynagh2012-06-121-3/+0
| |
* | Don't needlessly go via SDoc in mkAutoCCIan Lynagh2012-06-121-3/+3
| |
* | Redefine pprPanicFastInt in terms of panicDocIan Lynagh2012-06-122-5/+5
| |
* | Pass DynFlags down to showPprIan Lynagh2012-06-127-31/+40
| |
* | Remove the Show Var instanceIan Lynagh2012-06-122-5/+2
| |
* | Provide a way of 'show'int a Unique without going via SDocIan Lynagh2012-06-121-20/+13
| |
* | Remove some redundant Show instancesIan Lynagh2012-06-127-21/+0
| |