# TEMP: disable x86 if $HaveNativeCodeGen && $TargetPlatform =~ /^(i386|alpha|sparc)-/;
$ProduceHi = '-hifile=';
$HiOnStdout = 0;
+$HiWith = '';
$HiDiff_flag = '';
$Keep_HiDiffs = 0;
$Oopt_UnfoldingUseThreshold,
$Oopt_MaxSimplifierIterations,
$Oopt_ShowSimplifierProgress,
+ #
+ # The presence of -fclone-binds is *crucial* here as
+ # -ffull-laziness (which we're about to do next) floats
+ # bindings outwards, so we better make sure that this
+ # doesn't result in the floating out of bindings
+ # with identical uniques, i.e., -ffull-laziness needs
+ # to be preceeded by a simplifier pass with -fclone-binds
+ # set.
+ '-fclone-binds',
']',
#LATER: '-fcalc-inlinings1', -- pointless for 2.01
foreach $d ( @Import_dir ) {
if ($HiIncludeString) {
- $HiIncludeString = "$HiIncludeString:${d}/%.${HiSuffix}";
+ $HiIncludeString = "$HiIncludeString:${d}%.${HiSuffix}";
} else {
- $HiIncludeString = "$d/%.${HiSuffix}";
+ $HiIncludeString = "$d%.${HiSuffix}";
}
}
foreach $d ( @SysImport_dir ) {
if ($HiIncludeString) {
- $HiIncludeString = "$HiIncludeString:${d}/%.${HiSuffix_prelude}";
+ $HiIncludeString = "$HiIncludeString:${d}%.${HiSuffix_prelude}";
} else {
- $HiIncludeString = "${d}/%.${HiSuffix_prelude}";
+ $HiIncludeString = "${d}%.${HiSuffix_prelude}";
}
}
push(@SysLibrary, "-lHS$syslib");
push(@SysLibrary, "-lHS${syslib}_cbits")
- unless $syslib eq 'contrib' || $syslib eq 'exts' || $syslib eq 'conc';
+ unless $syslib eq 'contrib' || $syslib eq 'exts' || $syslib eq 'concurrent';
#HACK! they have no cbits
}
\end{code}
next arg; };
# leave out actual C generation (debugging) [also turns off interface gen]
- /^-hi$/ && do { $HiOnStdout = 1; $ProduceHi = '-hifile='; next arg; };
+
+ /^-hi$/ && do { $HiOnStdout = 1; $ProduceHi = '-hifile='; next arg; };
# _do_ generate an interface; usually used as: -noC -hi
+ /^-hi-with-(.*)$/ && do { $HiOnStdout = 1; $HiWith .= " $1" ; $ProduceHi = '-hifile='; next arg; };
+ # limit ourselves to outputting a particular section.
/^-nohi$/ && do { $ProduceHi = '-nohifile='; next arg; };
# don't generate an interface (even if generating C)
#--------- ticky/concurrent/parallel -----------------------------------
# we sort out the details a bit later on
- /^-concurrent$/ && do { $CONCURing = 'c'; &add_syslib('conc'); next arg; };
+ /^-concurrent$/ && do { $CONCURing = 'c'; &add_syslib('concurrent'); next arg; };
# concurrent Haskell; implies -syslib conc
/^-gransim$/ && do { $GRANing = 'g'; next arg; }; # GranSim
/^-ticky$/ && do { $TICKYing = 't'; next arg; }; # ticky-ticky