-----------------------------------------------------------------------------
--- $Id: DriverState.hs,v 1.88 2002/12/18 16:29:28 simonmar Exp $
+-- $Id: DriverState.hs,v 1.95 2003/08/20 18:48:20 sof Exp $
--
-- Settings for the driver
--
GLOBAL_VAR(v_Static, True, Bool)
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_minus_o2_for_C, False, Bool)
GLOBAL_VAR(v_MaxSimplifierIterations, 4, Int)
GLOBAL_VAR(v_StgStats, False, Bool)
-GLOBAL_VAR(v_UsageSPInf, False, Bool) -- Off by default
GLOBAL_VAR(v_Strictness, True, Bool)
GLOBAL_VAR(v_CSE, True, Bool)
GLOBAL_VAR(v_RuleCheck, Nothing, Maybe String)
hsc_minusO_flags =
[
"-fignore-asserts",
- "-ffoldr-build-on",
"-fdo-eta-reduction",
"-fdo-lambda-eta-expansion",
"-fcase-merge",
buildCoreToDo = do
opt_level <- readIORef v_OptLevel
max_iter <- readIORef v_MaxSimplifierIterations
- usageSP <- readIORef v_UsageSPInf
strictness <- readIORef v_Strictness
cse <- readIORef v_CSE
rule_check <- readIORef v_RuleCheck
],
case rule_check of { Just pat -> CoreDoRuleCheck 2 pat; Nothing -> CoreDoNothing },
- -- infer usage information here in case we need it later.
- -- (add more of these where you need them --KSW 1999-04)
- if usageSP then CoreDoUSPInf else CoreDoNothing,
-
CoreDoSimplify (SimplPhase 1) [
-- Need inline-phase2 here so that build/augment get
-- inlined. I found that spectral/hartel/genfft lost some useful
munge_paths = map munge_path
munge_path p
- | Just p' <- my_prefix_match "$libdir" p = top_dir ++ p'
- | otherwise = p
+ | Just p' <- maybePrefixMatch "$libdir" p = top_dir ++ p'
+ | otherwise = p
-- -----------------------------------------------------------------------------
-- earlier packages may depend on later ones, but not vice versa
GLOBAL_VAR(v_ExplicitPackages, initPackageList, [PackageName])
-initPackageList = [rtsPackage]
+initPackageList = [basePackage, rtsPackage]
+ -- basePackage is part of this list entirely because of
+ -- wired-in names in GHCi. See the notes on wired-in names in
+ -- Linker.linkExpr. By putting the base backage in initPackageList
+ -- we make sure that it'll always by linked.
+
-- add a package requested from the command-line
addPackage :: String -> IO ()
#ifdef darwin_TARGET_OS
getPackageFrameworkPath :: [PackageName] -> IO [String]
-getPackageFrameworkPath = do
+getPackageFrameworkPath pkgs = do
ps <- getExplicitPackagesAnd pkgs
return (nub (filter notNull (concatMap framework_dirs ps)))
(WaySMP, Way "s" "SMP"
[ "-fsmp"
, "-optc-pthread"
+#ifndef freebsd_TARGET_OS
, "-optl-pthread"
+#endif
, "-optc-DSMP"
, "-fvia-C" ]),