summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/main/DriverPipeline.hs10
-rw-r--r--compiler/main/DynFlags.hs19
-rw-r--r--docs/users_guide/6.6-notes.xml10
-rw-r--r--docs/users_guide/flags.xml4
-rw-r--r--docs/users_guide/phases.xml2
-rw-r--r--docs/users_guide/separate_compilation.xml6
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