Rename -no-recomp to -fforce-recomp, and document it
authorSimon Marlow <simonmar@microsoft.com>
Wed, 27 Sep 2006 13:27:07 +0000 (13:27 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Wed, 27 Sep 2006 13:27:07 +0000 (13:27 +0000)
compiler/main/DriverPipeline.hs
compiler/main/DynFlags.hs
docs/users_guide/6.6-notes.xml
docs/users_guide/flags.xml
docs/users_guide/phases.xml
docs/users_guide/separate_compilation.xml

index d66f147..c0f5e7b 100644 (file)
@@ -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)
index 86598e9..e4b82c8 100644 (file)
@@ -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!
 
index a45579b..3de6beb 100644 (file)
       </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>
index d3d91b3..9292b28 100644 (file)
          </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>
index cc9fbfb..4066345 100644 (file)
@@ -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>
index 696d687..076af6e 100644 (file)
@@ -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