LeadingUnderscore
+GhcWithRegisterised
+
\end{verbatim}
Establish what executables to run for the various phases, what the
'_mp', "-fstack-check -fparallel -D__PARALLEL_HASKELL__ -optc-DPAR",
'_mg', "-fstack-check -fconcurrent -fgransim -D__GRANSIM__ -D__CONCURRENT_HASKELL__ -optc-DCONCURRENT -optc-DGRAN");
-\end{code}
-
-Import/include directories (\tr{-I} options) are sufficiently weird to
-require special handling.
-
-\begin{code}
-@Import_dir = ('.'); #-i things
-@Include_dir = ('.'); #-I things; other default(s) stuck on AFTER option processing
-
# where to look for interface files (system hi's, i.e., prelude and syslibs)
@SysImport_dir = ( $INSTALLING )
? ( "$InstLibDirGhc/imports/std" )
, "-D__CONCURRENT_HASKELL__"
);
-@UserLibrary_dir= (); #-L things;...
-@UserLibrary = (); #-l things asked for by the user
@SysLibrary_dir = ( ( $INSTALLING ) #-syslib things supplied by the system
? $InstLibDirGhc
, "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/std/cbits"
)
);
-@SysLibrary = (); # will be built up as we go along
$TopClosureFile # defaults to 1.2 one; will be mangled later
= '';
# reset the following options:
# RTS flags to use while compiling
@HsC_rts_flags = ();
-@HsP_flags = (); # these are the flags destined solely for
- # the flex/yacc parser
@HsC_flags = ();
@HsC_antiflags = ();
\end{code}
@Import_dir = ('.'); #-i things
@Include_dir = ('.'); #-I things; other default(s) stuck on AFTER option processing
+@UserLibrary_dir= (); #-L things;...
+@UserLibrary = (); #-l things asked for by the user
+@SysLibrary = (); # will be built up as we go along
\end{code}
We are given a list of files with various presumably-known suffixes
$TICKYing = ''; # set to t if compiling for ticky-ticky profiling
$PARing = ''; # set to p if compiling for PAR
$GRANing = ''; # set to g if compiling for GRAN
-$UNREGing = ''; # set to u if compiling unregisterised
+$UNREGing = ($GhcWithRegisterised eq 'YES') ? '' : 'u';
$Specific_hi_file = ''; # set by -ohi <file>; "-" for stdout
$Specific_dump_file = ''; # set by -odump <file>; "-" for stdout
$Using_dump_file = 0;
']',
'-fstrictness',
- '-fcpr-analyse',
+ # '-fcpr-analyse',
'-fworker-wrapper',
'-fsimplify',
# PROFILING stuff after argv mangling:
if ( ! $PROFing ) {
- # warn about any scc exprs found (in case scc used as identifier)
- push(@HsP_flags, '-W');
-
# add -auto sccs even if not profiling !
push(@HsC_flags, $UNPROFscc_auto) if $UNPROFscc_auto;
# Ignore user sccs when auto annotating, but warn when doing so.
$PROFignore_scc = '-W' if $PROFauto;
-
- push(@HsP_flags, (($PROFignore_scc) ? $PROFignore_scc : '-S'));
}
#if ( $BuildTag ne '' ) {
# local($b) = $BuildDescr{$BuildTag};
} elsif ( $UNREGing eq 'u' ) {
$BuildTag = '_u';
}
-
\end{code}
After the sanity checks, add flags to the necessary parts of the driver pipeline:
sub runHsc {
local($ifile_root, $hsc_out, $hsc_hi, $hsc_out_c_stub, $hsc_out_h_stub, $going_interactive) = @_;
- # prepend comma to HsP flags (so hsc can tell them apart...)
- foreach $a ( @HsP_flags ) { $a = ",$a" unless $a =~ /^,/; }
-
&makeHiMap() unless $HiMapDone;
push(@HsC_flags, "-himap=$HiIncludeString");
open(OPTS, "> $Tmp_prefix.opts") || &tidy_up_and_die(1,"Can't open $Tmp_prefix.opts\n");
print OPTS "$dump @HsC_flags $CoreLint $USPLint $StgLint $Verbose";
close(OPTS);
- $to_do = "$HsC @HsP_flags ,$hscpp_hsc \@$Tmp_prefix.opts $output +RTS @HsC_rts_flags";
+ $to_do = "$HsC $hscpp_hsc \@$Tmp_prefix.opts $output +RTS @HsC_rts_flags";
} else {
- $to_do = "$HsC @HsP_flags ,$hscpp_hsc $dump @HsC_flags $CoreLint $USPLint $StgLint $Verbose $output +RTS @HsC_rts_flags";
+ $to_do = "$HsC $hscpp_hsc $dump @HsC_flags $CoreLint $USPLint $StgLint $Verbose $output +RTS @HsC_rts_flags";
}
&run_something($to_do, 'Haskell compiler');
/^-optP(.*)$/ && do { push(@HsCpp_flags, $1); next arg; };
/^-optCrts(.*)$/&& do { push(@HsC_rts_flags, $1); next arg; };
/^-optC(.*)$/ && do { push(@HsC_flags, $1); next arg; };
- /^-optp(.*)$/ && do { push(@HsP_flags, $1); next arg; };
/^-optcpp(.*)$/ && do { push(@Cpp_define, $1); $Only_preprocess_hc = ($1 eq "-E"); next arg; };
/^-optc(.*)$/ && do { push(@CcBoth_flags, $1); next arg; };
/^-opta(.*)$/ && do { push(@As_flags, $1); next arg; };
/^-fhistory-size.*$/ && do { push(@HsC_flags, $_); next arg; };
/^-fglasgow-exts$/
&& do { push(@HsC_flags, $_);
- push(@HsP_flags, '-N');
# -fglasgow-exts implies -syslib exts
&add_syslib('exts');