Skip to content

Fix OVERWRITING_CLOSURE story for shrunk arrays

Daniel Gröber (dxld) requested to merge DanielG/ghc:ldv-logic-bug into master

Commits:

  • rts: Fix nomenclature in OVERWRITING_CLOSURE macros

The additional commentary introduced by commit 8916e64e ("Implement shrinkSmallMutableArray# and resizeSmallMutableArray#.") unfortunately got this wrong. We set 'prim' to true in overwritingClosureOfs because we don't want to call LDV_recordDead().

The reason is because of this "inherently used" distinction made in the LDV profiler so I rename the variable to be more appropriate.

  • Remove call to LDV_RECORD_CREATE for array resizing

(See updated note in diff)

  • rts: Assert LDV_recordDead is not called for inherently used closures

The comments make it clear LDV_recordDead should not be called for inhererently used closures, so add an assertion to codify this fact.

  • are either individually buildable or squashed
  • have commit messages which describe what they do
  • have added source comments describing your change.
  • add a testcase to the testsuite.
Edited by Daniel Gröber (dxld)

Merge request reports