Skip to content

nonmoving gc: Various fixes

Ben Gamari requested to merge wip/nonmoving-fixes into master

This includes a number of fixes (some recent regressions, some long-running bugs) in the non-moving GC found in a debugging session on ghc/ghc-debug>.

Specifically,

  • Various bugs pertaining to slop zeroing. Strictly speaking this only affects the -debug build.
  • Don't join to the marking thread on shutdown; the only reason that this worked previously is that the implementation of osJoinThread handled errors incorrectly.
  • Add a missing write barrier in shrinkSmallByteArray#
  • Add a missing write barrier in handling of THROWTO messages
  • Fix a tricky regression due to a rebase error in aad1f803. Fixes #18997 (closed).
  • Fix a missing marking of promoted large objects (as described in Note [Non-moving GC: Marking evacuated objects]).
Edited by Ben Gamari

Merge request reports