Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
jberryman
GHC
Commits
b5dbb387
Commit
b5dbb387
authored
Jan 27, 2005
by
simonpj
Browse files
[project @ 2005-01-27 15:55:38 by simonpj]
Make -no-recomp a dynamic flag
parent
8ec76b05
Changes
5
Hide whitespace changes
Inline
Side-by-side
ghc/compiler/main/CmdLineOpts.lhs
View file @
b5dbb387
...
...
@@ -90,7 +90,7 @@ module CmdLineOpts (
#include "HsVersions.h"
import {-# SOURCE #-} Packages (PackageState)
import DriverPhases ( HscTarget(..)
, HscSource(..)
)
import DriverPhases ( HscTarget(..) )
import Constants -- Default values for some flags
import Util
import FastString ( FastString, mkFastString )
...
...
@@ -306,6 +306,7 @@ data DynFlags = DynFlags {
ruleCheck :: Maybe String,
cppFlag :: Bool, -- preprocess with cpp?
ppFlag :: Bool, -- preprocess with a Haskell Pp?
recompFlag :: Bool, -- True <=> recompilation checker is on
stolen_x86_regs :: Int,
cmdlineHcIncludes :: [String], -- -#includes
importPaths :: [FilePath],
...
...
@@ -365,6 +366,7 @@ defaultDynFlags = DynFlags {
ruleCheck = Nothing,
cppFlag = False,
ppFlag = False,
recompFlag = True,
stolen_x86_regs = 4,
cmdlineHcIncludes = [],
importPaths = ["."],
...
...
ghc/compiler/main/DriverFlags.hs
View file @
b5dbb387
...
...
@@ -189,15 +189,15 @@ static_flags =
-- -fno-code says to stop after Hsc but don't generate any code.
,
(
"fno-code"
,
PassFlag
(
\
f
->
do
setMode
(
StopBefore
HCc
)
f
setTarget
HscNothing
writeIORef
v_
Recomp
False
))
set
Recomp
Flag
False
))
------- GHCi -------------------------------------------------------
,
(
"ignore-dot-ghci"
,
NoArg
(
writeIORef
v_Read_DotGHCi
False
)
)
,
(
"read-dot-ghci"
,
NoArg
(
writeIORef
v_Read_DotGHCi
True
)
)
------- recompilation checker --------------------------------------
,
(
"recomp"
,
NoArg
(
writeIORef
v_
Recomp
True
)
)
,
(
"no-recomp"
,
NoArg
(
writeIORef
v_
Recomp
False
)
)
,
(
"recomp"
,
NoArg
(
set
Recomp
Flag
True
)
)
,
(
"no-recomp"
,
NoArg
(
set
Recomp
Flag
False
)
)
------- ways --------------------------------------------------------
,
(
"prof"
,
NoArg
(
addNoDups
v_Ways
WayProf
)
)
...
...
@@ -359,47 +359,47 @@ dynamic_flags = [
------ Debugging ----------------------------------------------------
,
(
"dstg-stats"
,
NoArg
(
writeIORef
v_StgStats
True
)
)
,
(
"ddump-cmm"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_cmm
)
)
,
(
"ddump-asm"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_asm
)
)
,
(
"ddump-cpranal"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_cpranal
)
)
,
(
"ddump-deriv"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_deriv
)
)
,
(
"ddump-ds"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_ds
)
)
,
(
"ddump-flatC"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_flatC
)
)
,
(
"ddump-foreign"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_foreign
)
)
,
(
"ddump-inlinings"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_inlinings
)
)
,
(
"ddump-occur-anal"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_occur_anal
)
)
,
(
"ddump-parsed"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_parsed
)
)
,
(
"ddump-rn"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_rn
)
)
,
(
"ddump-simpl"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_simpl
)
)
,
(
"ddump-simpl-iterations"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_simpl_iterations
)
)
,
(
"ddump-spec"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_spec
)
)
,
(
"ddump-prep"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_prep
)
)
,
(
"ddump-stg"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_stg
)
)
,
(
"ddump-stranal"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_stranal
)
)
,
(
"ddump-tc"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_tc
)
)
,
(
"ddump-types"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_types
)
)
,
(
"ddump-rules"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_rules
)
)
,
(
"ddump-cse"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_cse
)
)
,
(
"ddump-worker-wrapper"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_worker_wrapper
)
)
,
(
"d
show-passes"
,
NoArg
(
setVerbosity
"2"
)
)
,
(
"ddump-
rn
-trace"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_
rn
_trace
)
)
,
(
"ddump-
if
-trace"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_
if
_trace
)
)
,
(
"ddump-
tc-tra
ce"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_
tc_trace
)
)
,
(
"ddump-
splice
s"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_
splices
)
)
,
(
"ddump-
rn-stats
"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_
rn_stats
)
)
,
(
"ddump-
opt-cmm"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_
opt_cmm
)
)
,
(
"ddump-
simpl-stat
s"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_
simpl_stats
)
)
,
(
"d
dump-bco
s"
,
NoArg
(
setD
yn
Flag
Opt_D_
dump_BCOs
)
)
,
(
"d
source-stats"
,
NoArg
(
setD
yn
Flag
Opt_D_
source_stats
)
)
,
(
"dverbose-
core2core"
,
NoArg
(
setD
yn
Flag
Opt_D_verbose_
core2core
)
)
,
(
"d
verbose-stg2stg
"
,
NoArg
(
setD
yn
Flag
Opt_D_
verbose_stg2stg
)
)
,
(
"ddump-hi
-diffs
"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_hi
_diffs
)
)
,
(
"ddump-
hi"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_
hi
)
)
,
(
"ddump-
minimal-imports
"
,
NoArg
(
setD
yn
Flag
Opt_D_dump_
minimal_imports
)
)
,
(
"d
dump-vec
t"
,
NoArg
(
setD
yn
Flag
Opt_D
_dump_vect
)
)
,
(
"d
core
-lint"
,
NoArg
(
setD
yn
Flag
Opt_Do
Core
Linting
)
)
,
(
"d
stg
-lint"
,
NoArg
(
setD
yn
Flag
Opt_Do
Stg
Linting
)
)
,
(
"d
cmm-lint"
,
NoArg
(
setDynFlag
Opt_DoCmmLinting
)
)
,
(
"ddump-cmm"
,
setD
ump
Flag
Opt_D_dump_cmm
)
,
(
"ddump-asm"
,
setD
ump
Flag
Opt_D_dump_asm
)
,
(
"ddump-cpranal"
,
setD
ump
Flag
Opt_D_dump_cpranal
)
,
(
"ddump-deriv"
,
setD
ump
Flag
Opt_D_dump_deriv
)
,
(
"ddump-ds"
,
setD
ump
Flag
Opt_D_dump_ds
)
,
(
"ddump-flatC"
,
setD
ump
Flag
Opt_D_dump_flatC
)
,
(
"ddump-foreign"
,
setD
ump
Flag
Opt_D_dump_foreign
)
,
(
"ddump-inlinings"
,
setD
ump
Flag
Opt_D_dump_inlinings
)
,
(
"ddump-occur-anal"
,
setD
ump
Flag
Opt_D_dump_occur_anal
)
,
(
"ddump-parsed"
,
setD
ump
Flag
Opt_D_dump_parsed
)
,
(
"ddump-rn"
,
setD
ump
Flag
Opt_D_dump_rn
)
,
(
"ddump-simpl"
,
setD
ump
Flag
Opt_D_dump_simpl
)
,
(
"ddump-simpl-iterations"
,
setD
ump
Flag
Opt_D_dump_simpl_iterations
)
,
(
"ddump-spec"
,
setD
ump
Flag
Opt_D_dump_spec
)
,
(
"ddump-prep"
,
setD
ump
Flag
Opt_D_dump_prep
)
,
(
"ddump-stg"
,
setD
ump
Flag
Opt_D_dump_stg
)
,
(
"ddump-stranal"
,
setD
ump
Flag
Opt_D_dump_stranal
)
,
(
"ddump-tc"
,
setD
ump
Flag
Opt_D_dump_tc
)
,
(
"ddump-types"
,
setD
ump
Flag
Opt_D_dump_types
)
,
(
"ddump-rules"
,
setD
ump
Flag
Opt_D_dump_rules
)
,
(
"ddump-cse"
,
setD
ump
Flag
Opt_D_dump_cse
)
,
(
"ddump-worker-wrapper"
,
setD
ump
Flag
Opt_D_dump_worker_wrapper
)
,
(
"d
dump-rn-trace"
,
setDumpFlag
Opt_D_dump_rn_trace
)
,
(
"ddump-
if
-trace"
,
setD
ump
Flag
Opt_D_dump_
if
_trace
)
,
(
"ddump-
tc
-trace"
,
setD
ump
Flag
Opt_D_dump_
tc
_trace
)
,
(
"ddump-
spli
ce
s
"
,
setD
ump
Flag
Opt_D_dump_
splices
)
,
(
"ddump-
rn-stat
s"
,
setD
ump
Flag
Opt_D_dump_
rn_stats
)
,
(
"ddump-
opt-cmm
"
,
setD
ump
Flag
Opt_D_dump_
opt_cmm
)
,
(
"ddump-
simpl-stats"
,
setD
ump
Flag
Opt_D_dump_
simpl_stats
)
,
(
"ddump-
bco
s"
,
setD
ump
Flag
Opt_D_dump_
BCOs
)
,
(
"d
source-stat
s"
,
setD
ump
Flag
Opt_D_
source_stats
)
,
(
"d
verbose-core2core"
,
setD
ump
Flag
Opt_D_
verbose_core2core
)
,
(
"dverbose-
stg2stg"
,
setD
ump
Flag
Opt_D_verbose_
stg2stg
)
,
(
"d
dump-hi-diffs
"
,
setD
ump
Flag
Opt_D_
dump_hi_diffs
)
,
(
"ddump-hi"
,
setD
ump
Flag
Opt_D_dump_hi
)
,
(
"ddump-
minimal-imports"
,
setD
ump
Flag
Opt_D_dump_
minimal_imports
)
,
(
"ddump-
vect
"
,
setD
ump
Flag
Opt_D_dump_
vect
)
,
(
"d
core-lin
t"
,
setD
ump
Flag
Opt_D
oCoreLinting
)
,
(
"d
stg
-lint"
,
setD
ump
Flag
Opt_Do
Stg
Linting
)
,
(
"d
cmm
-lint"
,
setD
ump
Flag
Opt_Do
Cmm
Linting
)
,
(
"d
show-passes"
,
NoArg
(
setRecompFlag
False
>>
setVerbosity
"2"
)
)
------ Machine dependant (-m<blah>) stuff ---------------------------
...
...
@@ -513,6 +513,12 @@ setDynFlag, unSetDynFlag :: DynFlag -> IO ()
setDynFlag
f
=
updDynFlags
(
\
dfs
->
dopt_set
dfs
f
)
unSetDynFlag
f
=
updDynFlags
(
\
dfs
->
dopt_unset
dfs
f
)
setDumpFlag
::
DynFlag
->
OptKind
setDumpFlag
dump_flag
=
NoArg
(
setRecompFlag
False
>>
setDynFlag
dump_flag
)
-- Whenver we -ddump, switch off the recompilation checker,
-- else you don't see the dump!
addOpt_L
a
=
updDynFlags
(
\
s
->
s
{
opt_L
=
a
:
opt_L
s
})
addOpt_P
a
=
updDynFlags
(
\
s
->
s
{
opt_P
=
a
:
opt_P
s
})
addOpt_F
a
=
updDynFlags
(
\
s
->
s
{
opt_F
=
a
:
opt_F
s
})
...
...
@@ -524,6 +530,9 @@ addOpt_I a = updDynFlags (\s -> s{opt_I = a : opt_I s})
addOpt_i
a
=
updDynFlags
(
\
s
->
s
{
opt_i
=
a
:
opt_i
s
})
#
endif
setRecompFlag
::
Bool
->
IO
()
setRecompFlag
recomp
=
updDynFlags
(
\
dfs
->
dfs
{
recompFlag
=
recomp
})
setVerbosity
""
=
updDynFlags
(
\
dfs
->
dfs
{
verbosity
=
3
})
setVerbosity
n
|
all
isDigit
n
=
updDynFlags
(
\
dfs
->
dfs
{
verbosity
=
read
n
})
...
...
ghc/compiler/main/DriverPipeline.hs
View file @
b5dbb387
...
...
@@ -188,8 +188,8 @@ compile hsc_env mod_summary
extCoreName
=
basename
++
".hcr"
}
-- -no-recomp should also work with --make
do_recomp
<-
re
adIORef
v_Recomp
let
source_unchanged'
=
source_unchanged
&&
do_recomp
let
do_recomp
=
re
compFlag
dyn_flags
source_unchanged'
=
source_unchanged
&&
do_recomp
hsc_env'
=
hsc_env
{
hsc_dflags
=
dyn_flags'
}
-- run the compiler
...
...
@@ -657,7 +657,7 @@ runPhase (Hsc src_flavour) todo dflags basename suff input_fn get_output_fn _may
-- changed (which the compiler itself figures out).
-- Setting source_unchanged to False tells the compiler that M.o is out of
-- date wrt M.hs (or M.o doesn't exist) so we must recompile regardless.
do_recomp
<-
re
adIORef
v_Recomp
let
do_recomp
=
re
compFlag
dflags
source_unchanged
<-
if
not
(
do_recomp
&&
case
todo
of
{
DoLink
->
True
;
other
->
False
})
then
return
False
...
...
ghc/compiler/main/DriverState.hs
View file @
b5dbb387
...
...
@@ -111,7 +111,6 @@ GLOBAL_VAR(v_NoLink, False, Bool)
GLOBAL_VAR
(
v_NoHsMain
,
False
,
Bool
)
GLOBAL_VAR
(
v_MainModIs
,
Nothing
,
Maybe
String
)
GLOBAL_VAR
(
v_MainFunIs
,
Nothing
,
Maybe
String
)
GLOBAL_VAR
(
v_Recomp
,
True
,
Bool
)
GLOBAL_VAR
(
v_Collect_ghc_timing
,
False
,
Bool
)
GLOBAL_VAR
(
v_Do_asm_mangling
,
True
,
Bool
)
GLOBAL_VAR
(
v_Excess_precision
,
False
,
Bool
)
...
...
ghc/docs/users_guide/flags.xml
View file @
b5dbb387
...
...
@@ -397,8 +397,9 @@
<tbody>
<row>
<entry><option>
-no-recomp
</option></entry>
<entry>
Turn off recompilation checking
</entry>
<entry>
static
</entry>
<entry>
Turn off recompilation checking; implied by any
<option>
-ddump-X
</option>
option
</entry>
<entry>
dynamic
</entry>
<entry><option>
-recomp
</option></entry>
</row>
</tbody>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment