diff options
-rw-r--r-- | compiler/main/DriverPipeline.hs | 10 | ||||
-rw-r--r-- | compiler/main/DynFlags.hs | 19 | ||||
-rw-r--r-- | docs/users_guide/6.6-notes.xml | 10 | ||||
-rw-r--r-- | docs/users_guide/flags.xml | 4 | ||||
-rw-r--r-- | docs/users_guide/phases.xml | 2 | ||||
-rw-r--r-- | docs/users_guide/separate_compilation.xml | 6 |
6 files changed, 31 insertions, 20 deletions
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs index d66f1473b0..c0f5e7b784 100644 --- a/compiler/main/DriverPipeline.hs +++ b/compiler/main/DriverPipeline.hs @@ -144,8 +144,8 @@ compile hsc_env mod_summary maybe_old_linkable old_iface mod_index nmods = do extCoreName = basename ++ ".hcr" } -- -no-recomp should also work with --make - let do_recomp = dopt Opt_RecompChecking dflags - source_unchanged = isJust maybe_old_linkable && do_recomp + let force_recomp = dopt Opt_ForceRecomp dflags + source_unchanged = isJust maybe_old_linkable && not force_recomp hsc_env' = hsc_env { hsc_dflags = dflags' } object_filename = ml_obj_file location @@ -302,7 +302,7 @@ link BatchCompile dflags batch_attempt_linking hpt | Right t <- e_exe_time = any (t <) (map linkableTime linkables) - if dopt Opt_RecompChecking dflags && not linking_needed + if not (dopt Opt_ForceRecomp dflags) && not linking_needed then do debugTraceMsg dflags 2 (text exe_file <+> ptext SLIT("is up to date, linking not required.")) return Succeeded else do @@ -688,9 +688,9 @@ runPhase (Hsc src_flavour) stop dflags0 basename suff input_fn get_output_fn _ma -- date wrt M.hs (or M.o doesn't exist) so we must recompile regardless. src_timestamp <- getModificationTime (basename `joinFileExt` suff) - let do_recomp = dopt Opt_RecompChecking dflags + let force_recomp = dopt Opt_ForceRecomp dflags source_unchanged <- - if not do_recomp || not (isStopLn stop) + if force_recomp || not (isStopLn stop) -- Set source_unchanged to False unconditionally if -- (a) recompilation checker is off, or -- (b) we aren't going all the way to .o file (e.g. ghc -S) diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 86598e9eb2..e4b82c890e 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -186,7 +186,7 @@ data DynFlag -- misc opts | Opt_Cpp | Opt_Pp - | Opt_RecompChecking + | Opt_ForceRecomp | Opt_DryRun | Opt_DoAsmMangling | Opt_ExcessPrecision @@ -407,7 +407,6 @@ defaultDynFlags = pkgState = panic "no package state yet: call GHC.setSessionDynFlags", flags = [ - Opt_RecompChecking, Opt_ReadUserPackageConf, Opt_MonoPatBinds, -- Experimentally, I'm making this non-standard @@ -432,7 +431,7 @@ defaultDynFlags = -- and the default no-optimisation options: Opt_IgnoreInterfacePragmas, - Opt_OmitInterfacePragmas + Opt_OmitInterfacePragmas, -- on by default: Opt_PrintBindResult @@ -876,9 +875,9 @@ dynamic_flags = [ , ( "no-hs-main" , NoArg (setDynFlag Opt_NoHsMain)) , ( "main-is" , SepArg setMainIs ) - ------- recompilation checker -------------------------------------- - , ( "recomp" , NoArg (setDynFlag Opt_RecompChecking) ) - , ( "no-recomp" , NoArg (unSetDynFlag Opt_RecompChecking) ) + ------- recompilation checker (DEPRECATED, use -fforce-recomp) ----- + , ( "recomp" , NoArg (unSetDynFlag Opt_ForceRecomp) ) + , ( "no-recomp" , NoArg (setDynFlag Opt_ForceRecomp) ) ------- Packages ---------------------------------------------------- , ( "package-conf" , HasArg extraPkgConf_ ) @@ -941,7 +940,7 @@ dynamic_flags = [ , ( "dcore-lint", NoArg (setDynFlag Opt_DoCoreLinting)) , ( "dstg-lint", NoArg (setDynFlag Opt_DoStgLinting)) , ( "dcmm-lint", NoArg (setDynFlag Opt_DoCmmLinting)) - , ( "dshow-passes", NoArg (do unSetDynFlag Opt_RecompChecking + , ( "dshow-passes", NoArg (do setDynFlag Opt_ForceRecomp setVerbosity (Just 2)) ) , ( "dfaststring-stats", NoArg (setDynFlag Opt_D_faststring_stats)) @@ -1041,9 +1040,11 @@ fFlags = [ ( "dicts-cheap", Opt_DictsCheap ), ( "excess-precision", Opt_ExcessPrecision ), ( "asm-mangling", Opt_DoAsmMangling ), - ( "print-bind-result", Opt_PrintBindResult ) + ( "print-bind-result", Opt_PrintBindResult ), + ( "force-recomp", Opt_ForceRecomp ) ] + glasgowExtsFlags = [ Opt_GlasgowExts, Opt_FFI, @@ -1079,7 +1080,7 @@ unSetDynFlag f = upd (\dfs -> dopt_unset dfs f) setDumpFlag :: DynFlag -> OptKind DynP setDumpFlag dump_flag - = NoArg (unSetDynFlag Opt_RecompChecking >> setDynFlag dump_flag) + = NoArg (setDynFlag Opt_ForceRecomp >> setDynFlag dump_flag) -- Whenver we -ddump, switch off the recompilation checker, -- else you don't see the dump! diff --git a/docs/users_guide/6.6-notes.xml b/docs/users_guide/6.6-notes.xml index a45579bb8c..3de6beb96a 100644 --- a/docs/users_guide/6.6-notes.xml +++ b/docs/users_guide/6.6-notes.xml @@ -179,6 +179,16 @@ </listitem> <listitem> <para> + The + <option>-no-recomp</option><indexterm><primary><option>-no-recomp</option></primary></indexterm> + option is now called + <option>-fforce-recomp</option><indexterm><primary><option>-fforce-recomp</option></primary></indexterm>. + (the old name is still accepted for backwards compatibility, + but will be removed in the future). + </para> + </listitem> + <listitem> + <para> The <option>-fglobalise-toplev-names</option> flag has been removed. </para> diff --git a/docs/users_guide/flags.xml b/docs/users_guide/flags.xml index d3d91b3779..9292b280c6 100644 --- a/docs/users_guide/flags.xml +++ b/docs/users_guide/flags.xml @@ -426,11 +426,11 @@ </thead> <tbody> <row> - <entry><option>-no-recomp</option></entry> + <entry><option>-fforce-recomp</option></entry> <entry>Turn off recompilation checking; implied by any <option>-ddump-X</option> option</entry> <entry>dynamic</entry> - <entry><option>-recomp</option></entry> + <entry><option>-fno-force-recomp</option></entry> </row> </tbody> </tgroup> diff --git a/docs/users_guide/phases.xml b/docs/users_guide/phases.xml index cc9fbfbf16..4066345693 100644 --- a/docs/users_guide/phases.xml +++ b/docs/users_guide/phases.xml @@ -788,7 +788,7 @@ $ cat foo.hspp</screen> <literal>ghc</literal> is not clever enough to figure out that they both need recompiling. You can force recompilation by removing the object file, or by using the - <option>-no-recomp</option> flag. + <option>-fforce-recomp</option> flag. </para> </listitem> </varlistentry> diff --git a/docs/users_guide/separate_compilation.xml b/docs/users_guide/separate_compilation.xml index 696d687869..076af6e81c 100644 --- a/docs/users_guide/separate_compilation.xml +++ b/docs/users_guide/separate_compilation.xml @@ -603,9 +603,9 @@ $ ghc -c parse/Foo.hs parse/Bar.hs gurgle/Bumble.hs -odir `arch` <variablelist> <varlistentry> <term> - <option>-no-recomp</option> - <indexterm><primary><option>-recomp</option></primary></indexterm> - <indexterm><primary><option>-no-recomp</option></primary></indexterm> + <option>-fforce-recomp</option> + <indexterm><primary><option>-fforce-recomp</option></primary></indexterm> + <indexterm><primary><option>-fno-force-recomp</option></primary></indexterm> </term> <listitem> <para>Turn off recompilation checking (which is on by |