Commit 50128103 authored by Simon Marlow's avatar Simon Marlow

Rename -no-recomp to -fforce-recomp, and document it

parent a1579a34
......@@ -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)
......
......@@ -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!
......
......@@ -177,6 +177,16 @@
<xref linkend="overriding-suffixes" /> details.
</para>
</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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment