summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavran Cheng <Javran.c@gmail.com>2015-05-06 07:47:20 -0500
committerAustin Seipp <austin@well-typed.com>2015-05-06 07:50:49 -0500
commit477f514f6ebcf783810da93e2191e4b6ea65559b (patch)
tree937142e105718d77b9a7c404cd538e3dd9e78f55
parent03c4893e355948fe865bc52c744359c42e4b06d7 (diff)
downloadhaskell-477f514f6ebcf783810da93e2191e4b6ea65559b.tar.gz
rts: add "-no-rtsopts-suggestions" option
Depends on D767 Setting this flag prevents RTS from giving RTS suggestions like "Use `+RTS -Ksize -RTS' to increase it." According to the comment @rwbarton made in #9579, sometimes "+RTS" suggestions don't make sense (e.g. when the program is precompiled and installed through package managers), we can encourage people to distribute binaries with either "-no-rtsopts-suggestions" or "-rtsopts". Reviewed By: erikd, austin Differential Revision: https://phabricator.haskell.org/D809 GHC Trac Issues: #9579
-rw-r--r--compiler/main/DriverPipeline.hs4
-rw-r--r--compiler/main/DynFlags.hs4
-rw-r--r--docs/users_guide/flags.xml8
-rw-r--r--docs/users_guide/phases.xml21
-rw-r--r--includes/RtsAPI.h3
-rw-r--r--rts/ProfHeap.c14
-rw-r--r--rts/RtsFlags.c1
-rw-r--r--rts/hooks/OutOfHeap.c33
-rw-r--r--rts/hooks/StackOverflow.c19
-rw-r--r--testsuite/tests/rts/T5644/T5644.stderr4
-rw-r--r--testsuite/tests/rts/T9579/.gitignore2
-rw-r--r--testsuite/tests/rts/T9579/Makefile36
-rw-r--r--testsuite/tests/rts/T9579/T9579_outofheap_rtsall.stderr4
-rw-r--r--testsuite/tests/rts/T9579/T9579_outofheap_rtsall_no_suggestions.stderr2
-rw-r--r--testsuite/tests/rts/T9579/T9579_outofheap_rtsnone.stderr4
-rw-r--r--testsuite/tests/rts/T9579/T9579_outofheap_rtssome.stderr4
-rw-r--r--testsuite/tests/rts/T9579/T9579_stackoverflow_rtsall.stderr4
-rw-r--r--testsuite/tests/rts/T9579/T9579_stackoverflow_rtsall_no_suggestions.stderr1
-rw-r--r--testsuite/tests/rts/T9579/T9579_stackoverflow_rtsnone.stderr4
-rw-r--r--testsuite/tests/rts/T9579/T9579_stackoverflow_rtssome.stderr4
-rw-r--r--testsuite/tests/rts/T9579/all.T59
-rw-r--r--testsuite/tests/rts/outofmem.stderr2
-rw-r--r--testsuite/tests/rts/outofmem.stderr-i386-unknown-mingw322
-rw-r--r--testsuite/tests/rts/outofmem2.stderr4
-rw-r--r--testsuite/tests/rts/overflow1.stderr3
-rw-r--r--testsuite/tests/rts/overflow2.stderr3
-rw-r--r--testsuite/tests/rts/overflow3.stderr3
-rw-r--r--testsuite/tests/simplCore/should_run/simplrun010.stderr4
28 files changed, 182 insertions, 74 deletions
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
index c86667cf6e..1a212027b2 100644
--- a/compiler/main/DriverPipeline.hs
+++ b/compiler/main/DriverPipeline.hs
@@ -1657,6 +1657,10 @@ mkExtraObjToLinkIntoBinary dflags = do
text " RtsConfig __conf = defaultRtsConfig;",
text " __conf.rts_opts_enabled = "
<> text (show (rtsOptsEnabled dflags)) <> semi,
+ text " __conf.rts_opts_suggestions = "
+ <> text (if rtsOptsSuggestions dflags
+ then "rtsTrue"
+ else "rtsFalse") <> semi,
case rtsOpts dflags of
Nothing -> Outputable.empty
Just opts -> ptext (sLit " __conf.rts_opts= ") <>
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index f078c5162a..d8f5169122 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -746,6 +746,7 @@ data DynFlags = DynFlags {
rtsOpts :: Maybe String,
rtsOptsEnabled :: RtsOptsEnabled,
+ rtsOptsSuggestions :: Bool,
hpcDir :: String, -- ^ Path to store the .mix files
@@ -1473,6 +1474,7 @@ defaultDynFlags mySettings =
cmdlineFrameworks = [],
rtsOpts = Nothing,
rtsOptsEnabled = RtsOptsSafeOnly,
+ rtsOptsSuggestions = True,
hpcDir = ".hpc",
@@ -2392,6 +2394,8 @@ dynamic_flags = [
, defGhcFlag "rtsopts=some" (NoArg (setRtsOptsEnabled RtsOptsSafeOnly))
, defGhcFlag "rtsopts=none" (NoArg (setRtsOptsEnabled RtsOptsNone))
, defGhcFlag "no-rtsopts" (NoArg (setRtsOptsEnabled RtsOptsNone))
+ , defGhcFlag "no-rtsopts-suggestions"
+ (noArg (\d -> d {rtsOptsSuggestions = False} ))
, defGhcFlag "main-is" (SepArg setMainIs)
, defGhcFlag "haddock" (NoArg (setGeneralFlag Opt_Haddock))
, defGhcFlag "haddock-opts" (hasArg addHaddockOpts)
diff --git a/docs/users_guide/flags.xml b/docs/users_guide/flags.xml
index f62fe22067..de6c2c8ed8 100644
--- a/docs/users_guide/flags.xml
+++ b/docs/users_guide/flags.xml
@@ -2607,6 +2607,14 @@
<entry>-</entry>
</row>
<row>
+ <entry><option>-no-rtsopts-suggestions</option></entry>
+ <entry>Don't print RTS suggestions about linking with
+ <literal>-rtsopts</literal>.
+ </entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-no-link</option></entry>
<entry>Omit linking</entry>
<entry>dynamic</entry>
diff --git a/docs/users_guide/phases.xml b/docs/users_guide/phases.xml
index 8994ffe72e..05037b7e89 100644
--- a/docs/users_guide/phases.xml
+++ b/docs/users_guide/phases.xml
@@ -1221,6 +1221,27 @@ $ cat foo.hspp</screen>
<varlistentry>
<term>
+ <option>-no-rtsopts-suggestions</option>
+ <indexterm><primary><option>-no-rtsopts-suggestions</option></primary></indexterm>
+ </term>
+ <listitem>
+ <para>
+ This option disables RTS suggestions about linking with <option>-rtsopts</option>
+ when they are not available.
+
+ These suggestions would be unhelpful if the users have installed Haskell programs
+ through their package managers.
+ With this option enabled, these suggestions will not appear.
+
+ It is recommended for people distributing binaries
+ to build with either <option>-rtsopts</option> or
+ <option>-no-rtsopts-suggestions</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
<option>-fno-gen-manifest</option>
<indexterm><primary><option>-fno-gen-manifest</option></primary>
</indexterm>
diff --git a/includes/RtsAPI.h b/includes/RtsAPI.h
index 853a3a5b30..3b6de0f10c 100644
--- a/includes/RtsAPI.h
+++ b/includes/RtsAPI.h
@@ -64,6 +64,9 @@ typedef struct {
// Whether to interpret +RTS options on the command line
RtsOptsEnabledEnum rts_opts_enabled;
+ // Whether to give RTS flag suggestions
+ HsBool rts_opts_suggestions;
+
// additional RTS options
const char *rts_opts;
diff --git a/rts/ProfHeap.c b/rts/ProfHeap.c
index ba1adcd5d0..25112a7e1e 100644
--- a/rts/ProfHeap.c
+++ b/rts/ProfHeap.c
@@ -280,12 +280,14 @@ nextEra( void )
era++;
if (era == max_era) {
- if (rtsConfig.rts_opts_enabled == RtsOptsAll) {
- errorBelch("maximum number of censuses reached;\n"
- "use +RTS -i to reduce");
- } else {
- errorBelch("maximum number of censuses reached;\n"
- "Relink with -rtsopts and use `+RTS -i` to reduce");
+ errorBelch("Maximum number of censuses reached.");
+ if (rtsConfig.rts_opts_suggestions == rtsTrue) {
+ if (rtsConfig.rts_opts_enabled == RtsOptsAll) {
+ errorBelch("Use `+RTS -i' to reduce censuses.");
+ } else {
+ errorBelch("Relink with -rtsopts and "
+ "use `+RTS -i' to reduce censuses.");
+ }
}
stg_exit(EXIT_FAILURE);
}
diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c
index 0fbd05af2f..94a6c0edeb 100644
--- a/rts/RtsFlags.c
+++ b/rts/RtsFlags.c
@@ -59,6 +59,7 @@ RtsConfig rtsConfig;
const RtsConfig defaultRtsConfig = {
.rts_opts_enabled = RtsOptsSafeOnly,
+ .rts_opts_suggestions = rtsTrue,
.rts_opts = NULL,
.rts_hs_main = rtsFalse,
.defaultsHook = FlagDefaultsHook,
diff --git a/rts/hooks/OutOfHeap.c b/rts/hooks/OutOfHeap.c
index bb8752846f..5e68750d71 100644
--- a/rts/hooks/OutOfHeap.c
+++ b/rts/hooks/OutOfHeap.c
@@ -13,17 +13,24 @@
void
OutOfHeapHook (W_ request_size, W_ heap_size) /* both sizes in bytes */
{
- (void)request_size; /* keep gcc -Wall happy */
- if (heap_size > 0) {
- errorBelch("Heap exhausted;\n"
- "Current maximum heap size is %" FMT_Word
- " bytes (%" FMT_Word " MB);\n"
- "%s `+RTS -M<size>' to increase it.",
- heap_size, heap_size / (1024*1024),
- ((rtsConfig.rts_opts_enabled == RtsOptsAll)
- ? "use"
- : "relink with -rtsopts and use"));
- } else {
- errorBelch("out of memory");
- }
+ (void)request_size; /* keep gcc -Wall happy */
+ if (heap_size > 0) {
+ errorBelch("Heap exhausted;");
+ errorBelch("Current maximum heap size is %" FMT_Word
+ " bytes (%" FMT_Word " MB).",
+ heap_size, heap_size / (1024*1024));
+
+ if (rtsConfig.rts_opts_suggestions == rtsTrue) {
+
+ if (rtsConfig.rts_opts_enabled == RtsOptsAll) {
+ errorBelch("Use `+RTS -M<size>' to increase it.");
+ } else {
+ errorBelch("Relink with -rtsopts and "
+ "use `+RTS -M<size>' to increase it.");
+ }
+
+ }
+ } else {
+ errorBelch("Out of memory.\n");
+ }
}
diff --git a/rts/hooks/StackOverflow.c b/rts/hooks/StackOverflow.c
index 1ae8603eec..602700ad77 100644
--- a/rts/hooks/StackOverflow.c
+++ b/rts/hooks/StackOverflow.c
@@ -14,12 +14,15 @@
void
StackOverflowHook (W_ stack_size) /* in bytes */
{
- fprintf(stderr,
- "Stack space overflow: current size %" FMT_Word " bytes.\n"
- "%s `+RTS -Ksize -RTS' to increase it.\n",
- stack_size,
- ((rtsConfig.rts_opts_enabled == RtsOptsAll)
- ? "Use"
- : "Relink with -rtsopts and use")
- );
+ errorBelch("Stack space overflow: current size %" FMT_Word " bytes.",
+ stack_size);
+
+ if (rtsConfig.rts_opts_suggestions == rtsTrue) {
+ if (rtsConfig.rts_opts_enabled == RtsOptsAll) {
+ errorBelch("Use `+RTS -Ksize -RTS' to increase it.");
+ } else {
+ errorBelch("Relink with -rtsopts and "
+ "use `+RTS -Ksize -RTS' to increase it.");
+ }
+ }
}
diff --git a/testsuite/tests/rts/T5644/T5644.stderr b/testsuite/tests/rts/T5644/T5644.stderr
index 198dceb2bb..e5b0ab950b 100644
--- a/testsuite/tests/rts/T5644/T5644.stderr
+++ b/testsuite/tests/rts/T5644/T5644.stderr
@@ -1,3 +1,3 @@
T5644: Heap exhausted;
-Current maximum heap size is 20971520 bytes (20 MB);
-use `+RTS -M<size>' to increase it.
+T5644: Current maximum heap size is 20971520 bytes (20 MB).
+T5644: Use `+RTS -M<size>' to increase it.
diff --git a/testsuite/tests/rts/T9579/.gitignore b/testsuite/tests/rts/T9579/.gitignore
index e3a88e5db1..3c118b031a 100644
--- a/testsuite/tests/rts/T9579/.gitignore
+++ b/testsuite/tests/rts/T9579/.gitignore
@@ -1,6 +1,8 @@
+T9579_outofheap_rtsall_no_suggestions
T9579_outofheap_rtsall
T9579_outofheap_rtsnone
T9579_outofheap_rtssome
+T9579_stackoverflow_rtsall_no_suggestions
T9579_stackoverflow_rtsall
T9579_stackoverflow_rtsnone
T9579_stackoverflow_rtssome
diff --git a/testsuite/tests/rts/T9579/Makefile b/testsuite/tests/rts/T9579/Makefile
index a205eacb78..b05f0c474f 100644
--- a/testsuite/tests/rts/T9579/Makefile
+++ b/testsuite/tests/rts/T9579/Makefile
@@ -4,30 +4,42 @@ include $(TOP)/mk/test.mk
T9579_stackoverflow_rtsnone:
'$(TEST_HC)' $(TEST_HC_OPTS) -rtsopts=none -fforce-recomp -with-rtsopts -K1m \
- -outputdir tmp_T9579_stackoverflow_rtsnone \
- StackOverflow.hs -o T9579_stackoverflow_rtsnone
+ -outputdir tmp_T9579_stackoverflow_rtsnone \
+ StackOverflow.hs -o T9579_stackoverflow_rtsnone
T9579_stackoverflow_rtssome:
'$(TEST_HC)' $(TEST_HC_OPTS) -rtsopts=some -fforce-recomp -with-rtsopts -K1m \
- -outputdir tmp_T9579_stackoverflow_rtssome \
- StackOverflow.hs -o T9579_stackoverflow_rtssome
+ -outputdir tmp_T9579_stackoverflow_rtssome \
+ StackOverflow.hs -o T9579_stackoverflow_rtssome
T9579_stackoverflow_rtsall:
'$(TEST_HC)' $(TEST_HC_OPTS) -rtsopts=all -fforce-recomp -with-rtsopts -K1m \
- -outputdir tmp_T9579_stackoverflow_rtsall \
- StackOverflow.hs -o T9579_stackoverflow_rtsall
+ -outputdir tmp_T9579_stackoverflow_rtsall \
+ StackOverflow.hs -o T9579_stackoverflow_rtsall
+
+T9579_stackoverflow_rtsall_no_suggestions:
+ '$(TEST_HC)' $(TEST_HC_OPTS) -rtsopts=all -fforce-recomp -with-rtsopts -K1m \
+ -no-rtsopts-suggestions \
+ -outputdir tmp_T9579_stackoverflow_rtsall_no_suggestions \
+ StackOverflow.hs -o T9579_stackoverflow_rtsall_no_suggestions
T9579_outofheap_rtsnone:
'$(TEST_HC)' $(TEST_HC_OPTS) -rtsopts=none -fforce-recomp -with-rtsopts -M1m \
- -outputdir tmp_T9579_outofheap_rtsnone \
- OutOfHeap.hs -o T9579_outofheap_rtsnone
+ -outputdir tmp_T9579_outofheap_rtsnone \
+ OutOfHeap.hs -o T9579_outofheap_rtsnone
T9579_outofheap_rtssome:
'$(TEST_HC)' $(TEST_HC_OPTS) -rtsopts=some -fforce-recomp -with-rtsopts -M1m \
- -outputdir tmp_T9579_outofheap_rtssome \
- OutOfHeap.hs -o T9579_outofheap_rtssome
+ -outputdir tmp_T9579_outofheap_rtssome \
+ OutOfHeap.hs -o T9579_outofheap_rtssome
T9579_outofheap_rtsall:
'$(TEST_HC)' $(TEST_HC_OPTS) -rtsopts=all -fforce-recomp -with-rtsopts -M1m \
- -outputdir tmp_T9579_outofheap_rtsall \
- OutOfHeap.hs -o T9579_outofheap_rtsall
+ -outputdir tmp_T9579_outofheap_rtsall \
+ OutOfHeap.hs -o T9579_outofheap_rtsall
+
+T9579_outofheap_rtsall_no_suggestions:
+ '$(TEST_HC)' $(TEST_HC_OPTS) -rtsopts=all -fforce-recomp -with-rtsopts -M1m \
+ -no-rtsopts-suggestions \
+ -outputdir tmp_T9579_outofheap_rtsall_no_suggestions \
+ OutOfHeap.hs -o T9579_outofheap_rtsall_no_suggestions
diff --git a/testsuite/tests/rts/T9579/T9579_outofheap_rtsall.stderr b/testsuite/tests/rts/T9579/T9579_outofheap_rtsall.stderr
index 4fb0b86715..3d7cfe7565 100644
--- a/testsuite/tests/rts/T9579/T9579_outofheap_rtsall.stderr
+++ b/testsuite/tests/rts/T9579/T9579_outofheap_rtsall.stderr
@@ -1,3 +1,3 @@
T9579_outofheap_rtsall: Heap exhausted;
-Current maximum heap size is 1048576 bytes (1 MB);
-use `+RTS -M<size>' to increase it.
+T9579_outofheap_rtsall: Current maximum heap size is 1048576 bytes (1 MB).
+T9579_outofheap_rtsall: Use `+RTS -M<size>' to increase it.
diff --git a/testsuite/tests/rts/T9579/T9579_outofheap_rtsall_no_suggestions.stderr b/testsuite/tests/rts/T9579/T9579_outofheap_rtsall_no_suggestions.stderr
new file mode 100644
index 0000000000..c5d1ce3878
--- /dev/null
+++ b/testsuite/tests/rts/T9579/T9579_outofheap_rtsall_no_suggestions.stderr
@@ -0,0 +1,2 @@
+T9579_outofheap_rtsall_no_suggestions: Heap exhausted;
+T9579_outofheap_rtsall_no_suggestions: Current maximum heap size is 1048576 bytes (1 MB).
diff --git a/testsuite/tests/rts/T9579/T9579_outofheap_rtsnone.stderr b/testsuite/tests/rts/T9579/T9579_outofheap_rtsnone.stderr
index ce7e05f0bc..3bc209688e 100644
--- a/testsuite/tests/rts/T9579/T9579_outofheap_rtsnone.stderr
+++ b/testsuite/tests/rts/T9579/T9579_outofheap_rtsnone.stderr
@@ -1,3 +1,3 @@
T9579_outofheap_rtsnone: Heap exhausted;
-Current maximum heap size is 1048576 bytes (1 MB);
-relink with -rtsopts and use `+RTS -M<size>' to increase it.
+T9579_outofheap_rtsnone: Current maximum heap size is 1048576 bytes (1 MB).
+T9579_outofheap_rtsnone: Relink with -rtsopts and use `+RTS -M<size>' to increase it.
diff --git a/testsuite/tests/rts/T9579/T9579_outofheap_rtssome.stderr b/testsuite/tests/rts/T9579/T9579_outofheap_rtssome.stderr
index 25b88e4dd9..a6f03776db 100644
--- a/testsuite/tests/rts/T9579/T9579_outofheap_rtssome.stderr
+++ b/testsuite/tests/rts/T9579/T9579_outofheap_rtssome.stderr
@@ -1,3 +1,3 @@
T9579_outofheap_rtssome: Heap exhausted;
-Current maximum heap size is 1048576 bytes (1 MB);
-relink with -rtsopts and use `+RTS -M<size>' to increase it.
+T9579_outofheap_rtssome: Current maximum heap size is 1048576 bytes (1 MB).
+T9579_outofheap_rtssome: Relink with -rtsopts and use `+RTS -M<size>' to increase it.
diff --git a/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsall.stderr b/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsall.stderr
index fd7fe19357..16404b8b87 100644
--- a/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsall.stderr
+++ b/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsall.stderr
@@ -1,2 +1,2 @@
-Stack space overflow: current size 99136 bytes.
-Use `+RTS -Ksize -RTS' to increase it.
+T9579_stackoverflow_rtsall: Stack space overflow: current size 99136 bytes.
+T9579_stackoverflow_rtsall: Use `+RTS -Ksize -RTS' to increase it.
diff --git a/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsall_no_suggestions.stderr b/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsall_no_suggestions.stderr
new file mode 100644
index 0000000000..29a04b5159
--- /dev/null
+++ b/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsall_no_suggestions.stderr
@@ -0,0 +1 @@
+T9579_stackoverflow_rtsall_no_suggestions: Stack space overflow: current size 99136 bytes.
diff --git a/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsnone.stderr b/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsnone.stderr
index 0287e365c5..9151addaf2 100644
--- a/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsnone.stderr
+++ b/testsuite/tests/rts/T9579/T9579_stackoverflow_rtsnone.stderr
@@ -1,2 +1,2 @@
-Stack space overflow: current size 99136 bytes.
-Relink with -rtsopts and use `+RTS -Ksize -RTS' to increase it.
+T9579_stackoverflow_rtsnone: Stack space overflow: current size 99136 bytes.
+T9579_stackoverflow_rtsnone: Relink with -rtsopts and use `+RTS -Ksize -RTS' to increase it.
diff --git a/testsuite/tests/rts/T9579/T9579_stackoverflow_rtssome.stderr b/testsuite/tests/rts/T9579/T9579_stackoverflow_rtssome.stderr
index 0287e365c5..3bbfefe1b7 100644
--- a/testsuite/tests/rts/T9579/T9579_stackoverflow_rtssome.stderr
+++ b/testsuite/tests/rts/T9579/T9579_stackoverflow_rtssome.stderr
@@ -1,2 +1,2 @@
-Stack space overflow: current size 99136 bytes.
-Relink with -rtsopts and use `+RTS -Ksize -RTS' to increase it.
+T9579_stackoverflow_rtssome: Stack space overflow: current size 99136 bytes.
+T9579_stackoverflow_rtssome: Relink with -rtsopts and use `+RTS -Ksize -RTS' to increase it.
diff --git a/testsuite/tests/rts/T9579/all.T b/testsuite/tests/rts/T9579/all.T
index 8b6880c8e3..e029b4acb0 100644
--- a/testsuite/tests/rts/T9579/all.T
+++ b/testsuite/tests/rts/T9579/all.T
@@ -1,29 +1,64 @@
test('T9579_stackoverflow_rtsnone',
- [exit_code(2)],
+ [exit_code(2),
+ extra_clean([ 'tmp_T9579_stackoverflow_rtsnone/Main.hi',
+ 'tmp_T9579_stackoverflow_rtsnone/Main.o' ])],
run_command,
- ['$MAKE -s --no-print-directory T9579_stackoverflow_rtsnone && ./T9579_stackoverflow_rtsnone'])
+ ['$MAKE -s --no-print-directory T9579_stackoverflow_rtsnone \
+ && ./T9579_stackoverflow_rtsnone'])
test('T9579_stackoverflow_rtssome',
- [exit_code(2)],
+ [exit_code(2),
+ extra_clean([ 'tmp_T9579_stackoverflow_rtssome/Main.hi',
+ 'tmp_T9579_stackoverflow_rtssome/Main.o' ])],
run_command,
- ['$MAKE -s --no-print-directory T9579_stackoverflow_rtssome && ./T9579_stackoverflow_rtssome'])
+ ['$MAKE -s --no-print-directory T9579_stackoverflow_rtssome \
+ && ./T9579_stackoverflow_rtssome'])
test('T9579_stackoverflow_rtsall',
- [exit_code(2)],
+ [exit_code(2),
+ extra_clean([ 'tmp_T9579_stackoverflow_rtsall/Main.hi',
+ 'tmp_T9579_stackoverflow_rtsall/Main.o' ])],
run_command,
- ['$MAKE -s --no-print-directory T9579_stackoverflow_rtsall && ./T9579_stackoverflow_rtsall'])
+ ['$MAKE -s --no-print-directory T9579_stackoverflow_rtsall \
+ && ./T9579_stackoverflow_rtsall'])
+
+test('T9579_stackoverflow_rtsall_no_suggestions',
+ [exit_code(2),
+ extra_clean([ 'tmp_T9579_stackoverflow_rtsall_no_suggestions/Main.hi',
+ 'tmp_T9579_stackoverflow_rtsall_no_suggestions/Main.o' ])],
+ run_command,
+ ['$MAKE -s --no-print-directory T9579_stackoverflow_rtsall_no_suggestions \
+ && ./T9579_stackoverflow_rtsall_no_suggestions'])
test('T9579_outofheap_rtsnone',
- [exit_code(251)],
+ [exit_code(251),
+ extra_clean([ 'tmp_T9579_outofheap_rtsnone/Main.hi',
+ 'tmp_T9579_outofheap_rtsnone/Main.o' ])],
run_command,
- ['$MAKE -s --no-print-directory T9579_outofheap_rtsnone && ./T9579_outofheap_rtsnone'])
+ ['$MAKE -s --no-print-directory T9579_outofheap_rtsnone \
+ && ./T9579_outofheap_rtsnone'])
test('T9579_outofheap_rtssome',
- [exit_code(251)],
+ [exit_code(251),
+ extra_clean([ 'tmp_T9579_outofheap_rtssome/Main.hi',
+ 'tmp_T9579_outofheap_rtssome/Main.o' ])],
run_command,
- ['$MAKE -s --no-print-directory T9579_outofheap_rtssome && ./T9579_outofheap_rtssome'])
+ ['$MAKE -s --no-print-directory T9579_outofheap_rtssome \
+ && ./T9579_outofheap_rtssome'])
test('T9579_outofheap_rtsall',
- [exit_code(251)],
+ [exit_code(251),
+ extra_clean([ 'tmp_T9579_outofheap_rtsall/Main.hi',
+ 'tmp_T9579_outofheap_rtsall/Main.o' ])],
+
+ run_command,
+ ['$MAKE -s --no-print-directory T9579_outofheap_rtsall \
+ && ./T9579_outofheap_rtsall'])
+
+test('T9579_outofheap_rtsall_no_suggestions',
+ [exit_code(251),
+ extra_clean([ 'tmp_T9579_outofheap_rtsall_no_suggestions/Main.hi',
+ 'tmp_T9579_outofheap_rtsall_no_suggestions/Main.o' ])],
run_command,
- ['$MAKE -s --no-print-directory T9579_outofheap_rtsall && ./T9579_outofheap_rtsall'])
+ ['$MAKE -s --no-print-directory T9579_outofheap_rtsall_no_suggestions \
+ && ./T9579_outofheap_rtsall_no_suggestions'])
diff --git a/testsuite/tests/rts/outofmem.stderr b/testsuite/tests/rts/outofmem.stderr
index 81856a7544..4b16ce9598 100644
--- a/testsuite/tests/rts/outofmem.stderr
+++ b/testsuite/tests/rts/outofmem.stderr
@@ -1 +1 @@
-outofmem.exe: out of memory
+outofmem.exe: Out of memory
diff --git a/testsuite/tests/rts/outofmem.stderr-i386-unknown-mingw32 b/testsuite/tests/rts/outofmem.stderr-i386-unknown-mingw32
index 81856a7544..4b16ce9598 100644
--- a/testsuite/tests/rts/outofmem.stderr-i386-unknown-mingw32
+++ b/testsuite/tests/rts/outofmem.stderr-i386-unknown-mingw32
@@ -1 +1 @@
-outofmem.exe: out of memory
+outofmem.exe: Out of memory
diff --git a/testsuite/tests/rts/outofmem2.stderr b/testsuite/tests/rts/outofmem2.stderr
index 8fb459b668..e4548d0080 100644
--- a/testsuite/tests/rts/outofmem2.stderr
+++ b/testsuite/tests/rts/outofmem2.stderr
@@ -1,3 +1,3 @@
outofmem2: Heap exhausted;
-Current maximum heap size is 5242880 bytes (5 MB);
-use `+RTS -M<size>' to increase it.
+outofmem2: Current maximum heap size is 5242880 bytes (5 MB).
+outofmem2: Use `+RTS -M<size>' to increase it.
diff --git a/testsuite/tests/rts/overflow1.stderr b/testsuite/tests/rts/overflow1.stderr
index 734ca954ca..77ef3acd1b 100644
--- a/testsuite/tests/rts/overflow1.stderr
+++ b/testsuite/tests/rts/overflow1.stderr
@@ -1 +1,2 @@
-overflow1: out of memory
+overflow1: Out of memory.
+
diff --git a/testsuite/tests/rts/overflow2.stderr b/testsuite/tests/rts/overflow2.stderr
index be65509ea9..0e57a8e611 100644
--- a/testsuite/tests/rts/overflow2.stderr
+++ b/testsuite/tests/rts/overflow2.stderr
@@ -1 +1,2 @@
-overflow2: out of memory
+overflow2: Out of memory.
+
diff --git a/testsuite/tests/rts/overflow3.stderr b/testsuite/tests/rts/overflow3.stderr
index 6c804e5048..aec22253ab 100644
--- a/testsuite/tests/rts/overflow3.stderr
+++ b/testsuite/tests/rts/overflow3.stderr
@@ -1 +1,2 @@
-overflow3: out of memory
+overflow3: Out of memory.
+
diff --git a/testsuite/tests/simplCore/should_run/simplrun010.stderr b/testsuite/tests/simplCore/should_run/simplrun010.stderr
index a2a586d00a..4d524d3ba4 100644
--- a/testsuite/tests/simplCore/should_run/simplrun010.stderr
+++ b/testsuite/tests/simplCore/should_run/simplrun010.stderr
@@ -1,3 +1,3 @@
simplrun010: Heap exhausted;
-Current maximum heap size is 10485760 bytes (10 MB);
-use `+RTS -M<size>' to increase it.
+simplrun010: Current maximum heap size is 10485760 bytes (10 MB).
+simplrun010: Use `+RTS -M<size>' to increase it.