summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-12-17 22:03:39 -0500
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-12-30 06:52:09 -0500
commitf14bb50b76a60253a090797c652a9d29120bf875 (patch)
treeccdf6733f3cb6d0574792017656b1d40a35ba028
parent2528e6847d6ab11b452998e5511d60b26453f022 (diff)
downloadhaskell-f14bb50b76a60253a090797c652a9d29120bf875.tar.gz
rts: Ensure that nonmoving gc isn't used with profiling
-rw-r--r--docs/users_guide/runtime_control.rst4
-rw-r--r--rts/RtsFlags.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/docs/users_guide/runtime_control.rst b/docs/users_guide/runtime_control.rst
index 2fb1917d2c..738d981a18 100644
--- a/docs/users_guide/runtime_control.rst
+++ b/docs/users_guide/runtime_control.rst
@@ -372,8 +372,8 @@ performance.
collections. Under this collection strategy oldest-generation garbage
collection can proceed concurrently with mutation.
- Note that :rts-flag:`--nonmoving-gc` cannot be used with ``-G1`` nor
- :rts-flag:`-c`.
+ Note that :rts-flag:`-nonmoving-gc` cannot be used with ``-G1``,
+ :rts-flag:`profiling <-hc>` nor :rts-flag:`-c`.
.. rts-flag:: -xn
diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c
index 54680b4b7f..4eac4622dd 100644
--- a/rts/RtsFlags.c
+++ b/rts/RtsFlags.c
@@ -1738,6 +1738,11 @@ static void normaliseRtsOpts (void)
barf("The non-moving collector doesn't support -G1");
}
+ if (RtsFlags.ProfFlags.doHeapProfile != NO_HEAP_PROFILING &&
+ RtsFlags.GcFlags.useNonmoving) {
+ barf("The non-moving collector doesn't support profiling");
+ }
+
if (RtsFlags.GcFlags.compact && RtsFlags.GcFlags.useNonmoving) {
errorBelch("The non-moving collector cannot be used in conjunction with\n"
"the compacting collector.");