X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsFlags.c;h=81bac4e9b6b56e5983302a75c7ca24b8029530ca;hb=2ac31c7f6e9306024da822674f478db039edb39b;hp=439dfd78977a6b7aa621f4a13babd2ade429efb0;hpb=8db56c8606e6c0e89a87d34c3f67124f1e8b988e;p=ghc-hetmet.git diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c index 439dfd7..81bac4e 100644 --- a/rts/RtsFlags.c +++ b/rts/RtsFlags.c @@ -317,6 +317,7 @@ void initRtsFlagsDefaults(void) RtsFlags.TraceFlags.timestamp = rtsFalse; RtsFlags.TraceFlags.sched = rtsFalse; + RtsFlags.TraceFlags.gc = rtsFalse; #ifdef USE_PAPI /* By default no special measurements taken */ @@ -446,7 +447,7 @@ usage_text[] = { "", #endif /* DEBUG */ #if defined(THREADED_RTS) && !defined(NOSMP) -" -N Use OS threads (default: 1)", +" -N Use OS threads (default: 1) (also sets -g)", " -g Use OS threads for GC (default: 1)", " -qm Don't automatically migrate threads between CPUs", " -qw Migrate a thread to the current CPU when it is woken up", @@ -870,10 +871,6 @@ error = rtsTrue; case 'H': RtsFlags.GcFlags.heapSizeSuggestion = decode(rts_argv[arg]+2) / BLOCK_SIZE; - - if (RtsFlags.GcFlags.heapSizeSuggestion <= 0) { - bad_option(rts_argv[arg]); - } break; #ifdef RTS_GTK_FRONTPANEL @@ -1124,10 +1121,18 @@ error = rtsTrue; if (rts_argv[arg][2] != '\0') { RtsFlags.ParFlags.nNodes = strtol(rts_argv[arg]+2, (char **) NULL, 10); + // set -g at the same time as -N by default + RtsFlags.ParFlags.gcThreads = RtsFlags.ParFlags.nNodes; if (RtsFlags.ParFlags.nNodes <= 0) { errorBelch("bad value for -N"); error = rtsTrue; } +#if defined(PROFILING) + if (RtsFlags.ParFlags.nNodes > 1) { + errorBelch("bad option %s: only -N1 is supported with profiling", rts_argv[arg]); + error = rtsTrue; + } +#endif } ) break; @@ -1140,12 +1145,6 @@ error = rtsTrue; errorBelch("bad value for -g"); error = rtsTrue; } -#if defined(PROFILING) - if (RtsFlags.ParFlags.nNodes > 1) { - errorBelch("bad option %s: only -N1 is supported with profiling", rts_argv[arg]); - error = rtsTrue; - } -#endif } ) break; @@ -1225,6 +1224,9 @@ error = rtsTrue; case 's': RtsFlags.TraceFlags.sched = rtsTrue; break; + case 'g': + RtsFlags.TraceFlags.gc = rtsTrue; + break; default: errorBelch("unknown RTS option: %s",rts_argv[arg]); error = rtsTrue; @@ -2335,7 +2337,7 @@ open_stats_file ( { FILE *f = NULL; - if (strequal(rts_argv[arg]+2, "stderr")) { /* use debugBelch */ + if (strequal(rts_argv[arg]+2, "stderr") || strequal(rts_argv[arg]+2, "-")) { f = NULL; /* NULL means use debugBelch */ } else { if (rts_argv[arg][2] != '\0') { /* stats file specified */