Skip to content

GHC.RTS.Flags.DebugFlags.nonmoving_gc = False even though I am using the nonmoving GC

Summary

I am definitely using the nonmoving GC - when I performGC it is instantaneous despite my large working set, and when I query for RTS Stats, I get nonmoving stats.

But when I query for my RTS flags as a sanity check, I still get told it isn't turned on:

DebugFlags
    { scheduler = False
    , interpreter = False
    , weak = False
    , gccafs = False
    , gc = False
    , nonmoving_gc = False
    , block_alloc = False
    , sanity = False
    , stable = False
    , prof = False
    , linker = False
    , apply = False
    , stm = False
    , squeeze = False
    , hpc = False
    , sparks = False
    }

Steps to reproduce

Run a program with +RTS -xn -RTS and then inspect the result of getDebugFlags

Expected behavior

nonmoving_gc = True should be the value

Environment

  • GHC version used: getDebugFlags

Optional:

  • Operating System: NixOS
  • System Architecture: x86
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information