64-bit RTS with --disable-large-address-space is untested in CI
Currently, --enable-large-address-space
is the default RTS configuration on all 64-bit platforms except OpenBSD. The relevant code paths are completely untested in CI, and they did bitrot in the past without being noticed (#23385 (closed)) before I fixed it once. This is not ideal, we should at the very least have one nightly job that tests x86_64-linux with --disable-large-address-space
and alert me when it needs to be fixed again.
Motivation: --disable-large-address-space
is quite useful when running Haskell programs in some rather unusual configurations (e.g. via QEMU user mode emulation, fuzzing via AFL++, etc) with the need to constrain memory usage via RLIMIT, which doesn't work with our two-step allocator. Apart from OpenBSD, wasm64 will also rely on this configuration so I want it to be in good shape when I get to add wasm64 support in the future.
I will try to get it work in my environment, triage the testsuite to filter out cases that only work with two-step allocator, and submit a MR with needed fixes and CI logic.