summaryrefslogtreecommitdiff
path: root/compiler/main/DynFlags.hs
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Merge remote-tracking branch 'origin/master' into tc-untouchablesSimon Peyton Jones2012-09-281-6/+5
| |\ \
| * \ \ Merge remote-tracking branch 'origin/master' into tc-untouchablesSimon Peyton Jones2012-09-181-0/+21
| |\ \ \
| * | | | Add type "holes", enabled by -XTypeHoles, Trac #5910Simon Peyton Jones2012-09-171-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This single commit combines a lot of work done by Thijs Alkemade <thijsalkemade@gmail.com>, plus a slew of subsequent refactoring by Simon PJ. The basic idea is * Add a new expression form "_", a hole, standing for a not-yet-written expression * Give a useful error message that (a) gives the type of the hole (b) gives the types of some enclosing value bindings that mention the hole Driven by this goal I did a LOT of refactoring in TcErrors, which in turn allows us to report enclosing value bindings for other errors, not just holes. (Thijs rightly did not attempt this!) The major data type change is a new form of constraint data Ct = ... | CHoleCan { cc_ev :: CtEvidence, cc_hole_ty :: TcTauType, cc_depth :: SubGoalDepth } I'm still in two minds about whether this is the best plan. Another possibility would be to have a predicate type for holes, somthing like class Hole a where holeValue :: a It works the way it is, but there are some annoying special cases for CHoleCan (just grep for "CHoleCan").
* | | | | Build the dynamic way by default on Linux/amd64Ian Lynagh2012-10-031-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This required various build system changes to get the build to go through. In the inplace shell wrappers, we set LD_LIBRARY_PATH to allow programs to find their libraries. In the future, we might change the inplace tree to be the same shape as an installed tree instead. However, this would mean changing the way we do installation, as currently we use cabal's installation methods to install the libraries, but that only works if the libraries are under libraries/foo/dist-install/build/..., rather than in inplace/lib/...
* | | | | Add a flag to tell ghc to use $ORIGIN when linking program dynamicallyIan Lynagh2012-10-021-0/+2
| | | | |
* | | | | Do flag consistency checks at the end of flag parsingIan Lynagh2012-10-011-54/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it easier to ensure that we get consistent consistency checking, e.g. that -f1 -f2 will do the same checks as -f2 -f1 I think that some of the checks were bogus before, but hopefully all are correct now.
* | | | | Allow -static to be used after -dynamicIan Lynagh2012-10-011-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's still the case that -dynamic -static will leave -fPIC enabled, but it's tricky to avoid that, and we already have similar situations where for example -XRankNTypes -XNoRankNTypes will leave ExplicitForAll enabled.
* | | | | Remove some old, commented out bitsIan Lynagh2012-10-011-6/+0
| | | | |
* | | | | Change how we handle options required by 'way'sIan Lynagh2012-09-291-78/+74
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to add the options when the way was enabled, but this caused problems with the static/dynamic choice, as once the 'dynamic' options had been added it wasn't easy to remove them. We therefore didn't allow -static on the commandline if we'd already seen -static, which kludged around the issue. But apart from being unsatisfactory in the first place, this is a problem if we want to allow -dynamic being on by default, as there wouldn't be any way to turn it off. So now we add C/CPP/linker flags required by the 'way's when flags are requested, rather than during flag parsing.
* | | | Partially fix #367 by adding HpLim checks to entry with -fno-omit-yields.Edward Z. Yang2012-09-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | Remove some old-codegen cruftSimon Marlow2012-09-251-4/+0
| | | |
* | | | Change some "else return ()"s to use when/unlessIan Lynagh2012-09-201-3/+2
| |/ / |/| |
* | | Move tARGET_* out of HaskellConstantsIan Lynagh2012-09-171-0/+21
|/ /
* | Move tAG_BITS into platformConstantsIan Lynagh2012-09-161-0/+9
| |
* | Move wORD_SIZE into platformConstantsIan Lynagh2012-09-161-2/+2
| |
* | Move wORD_SIZE_IN_BITS to DynFlagsIan Lynagh2012-09-141-0/+4
| | | | | | | | This frees wORD_SIZE up to be moved out of HaskellConstants
* | Move more constants to platformConstantsIan Lynagh2012-09-141-1/+5
| |
* | Add a couple more mkDerivedConstants modesIan Lynagh2012-09-131-0/+3
| | | | | | | | | | | | We now also generate nice wrappers for the platformConstants methods. For now it's all commented out as the definitions conflict with those in Constants.
* | Add more modes to mkDerivedConstantsIan Lynagh2012-09-131-1/+5
| | | | | | | | We now generate a platformConstants file that we can read at runtime.
* | Make -fhpc a dynamic flagIan Lynagh2012-09-031-1/+3
| |
* | Make -fhistory-size dynamicIan Lynagh2012-09-031-0/+3
| |
* | Move ldInputs into DynFlagsIan Lynagh2012-09-031-0/+3
| |
* | Remove the way-related CPP frmo DynFlagsIan Lynagh2012-09-031-33/+37
| |
* | Remove doingTickyProfilingIan Lynagh2012-09-031-4/+0
| | | | | | | | It's now just 'dopt Opt_Ticky'
* | Define initial buildTag and rtsBuildTagIan Lynagh2012-09-031-2/+2
| |
* | Make the ways dynamicIan Lynagh2012-09-031-23/+229
| |
* | Refactor the ways code a bitIan Lynagh2012-09-031-5/+2
| | | | | | | | | | | | | | | | We used to use a list lookup that couldn't fail. Now we just use functions. There were 3 overlapping entries for WayPar; I've commented out the ones that were shadowed for now.
* | disable -fregs-graph (#7192)Simon Marlow2012-08-311-1/+2
| |
* | enable -fnew-codegen by defaultSimon Marlow2012-08-311-2/+0
| |
* | Add "Unregisterised" as a field in the settings fileIan Lynagh2012-08-071-19/+25
| | | | | | | | | | | | To explicitly choose whether you want an unregisterised build you now need to use the "--enable-unregisterised"/"--disable-unregisterised" configure flags.
* | Make tablesNextToCode "dynamic"Ian Lynagh2012-08-061-0/+10
| | | | | | | | | | This is a bit odd by itself, but it's a stepping stone on the way to putting "target unregisterised" into the settings file.
* | More more ld-related settings into the settings fileIan Lynagh2012-08-051-0/+3
| | | | | | | | Related to #4862
* | Build fixIan Lynagh2012-08-051-2/+1
| |
* | Move linker flags into the settings file; fixes #4862Ian Lynagh2012-08-051-1/+0
| | | | | | | | They were getting baked into Config.hs before.
* | Explicitly share some return continuationsSimon Marlow2012-08-021-0/+3
| | | | | | | | | | | | | | Instead of relying on common-block-elimination to share return continuations in the common case (case-alternative heap checks) we do it explicitly. This isn't hard to do, is more robust, and saves some compilation time. Full commentary in Note [sharing continuations].
* | New codegen: do not split proc-points when using the NCGSimon Marlow2012-07-301-0/+3
|/ | | | | | | | | Proc-point splitting is only required by backends that do not support having proc-points within a code block (that is, everything except the native backend, i.e. LLVM and C). Not doing proc-point splitting saves some compilation time, and might produce slightly better code in some cases.
* Re-enable inline-rule-shadowing warning.Paolo Capriotti2012-07-261-1/+2
| | | | Keep the warning off for template-haskell and bytestring for the moment.
* Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-07-251-1/+3
|\
| * Add flag to disable rule shadowing warning.Paolo Capriotti2012-07-241-1/+3
| | | | | | | | | | Also, temporarely disable that warning for validate builds, until we finish fixing them all.
* | Make -fscc-profiling a dynamic flagIan Lynagh2012-07-241-0/+2
|/ | | | All the flags that 'ways' imply are now dynamic
* Make tracingSettings have just enough information to get debug output printedSimon Peyton Jones2012-07-201-1/+14
| | | | I suspect I have done the wrong thing; I hope someone can improve.
* Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-07-191-1/+5
|\
| * Remove hPrintDump and make rule dump output more consistent (#7060)Paolo Capriotti2012-07-181-1/+1
| | | | | | | | | | | | | | | | The only difference between SevDump and SevOutput in defaultLogAction is an extra blank line, so we don't need a separate hPrintDump function. Also make -ddump-to-file consistent with the stdout version, by avoiding to add the extra empty line when dumping rules.
| * Implemented MultiWayIf extension.Mikhail Vorozhtsov2012-07-161-0/+2
| |
| * Implemented \case expressions.Mikhail Vorozhtsov2012-07-161-0/+2
| |
* | Make -fPIC a dynamic flagIan Lynagh2012-07-161-14/+56
| | | | | | | | | | | | Hopefully I've kept the logic the same, and we now generate warnings if the user does -fno-PIC but we ignore them (e.g. because they're on OS X amd64).
* | Make a picPOpts functionIan Lynagh2012-07-161-1/+6
|/ | | | | We now handle the preprocessor options the same way as the gcc options (picCCOpts).
* Merge remote-tracking branch 'origin/master' into newcgSimon Marlow2012-07-041-99/+313
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * origin/master: (756 commits) don't crash if argv[0] == NULL (#7037) -package P was loading all versions of P in GHCi (#7030) Add a Note, copying text from #2437 improve the --help docs a bit (#7008) Copy Data.HashTable's hashString into our Util module Build fix Build fixes Parse error: suggest brackets and indentation. Don't build the ghc DLL on Windows; works around trac #5987 On Windows, detect if DLLs have too many symbols; trac #5987 Add some more Integer rules; fixes #6111 Fix PA dfun construction with silent superclass args Add silent superclass parameters to the vectoriser Add silent superclass parameters (again) Mention Generic1 in the user's guide Make the GHC API a little more powerful. tweak llvm version warning message New version of the patch for #5461. Fix Word64ToInteger conversion rule. Implemented feature request on reconfigurable pretty-printing in GHCi (#5461) ... Conflicts: compiler/basicTypes/UniqSupply.lhs compiler/cmm/CmmBuildInfoTables.hs compiler/cmm/CmmLint.hs compiler/cmm/CmmOpt.hs compiler/cmm/CmmPipeline.hs compiler/cmm/CmmStackLayout.hs compiler/cmm/MkGraph.hs compiler/cmm/OldPprCmm.hs compiler/codeGen/CodeGen.lhs compiler/codeGen/StgCmm.hs compiler/codeGen/StgCmmBind.hs compiler/codeGen/StgCmmLayout.hs compiler/codeGen/StgCmmUtils.hs compiler/main/CodeOutput.lhs compiler/main/HscMain.hs compiler/nativeGen/AsmCodeGen.lhs compiler/simplStg/SimplStg.lhs
| * Make the GHC API a little more powerful.David Terei2012-06-251-21/+54
| |
| * New version of the patch for #5461.Paolo Capriotti2012-06-251-11/+3
| |