Why not short out IND_STATICs in the GC?
Ömer Sinan Ağacan
omeragacan at gmail.com
Sat Apr 27 06:44:20 UTC 2019
I'm wondering why in the GC we don't short out IND_STATICs like we do in INDs
and BLACKHOLEs. Is there a reason for that? In this code in evacuate():
evacuate_static_object(IND_STATIC_LINK((StgClosure *)q), q);
Why not do something like
q = ((StgIndStatic*)q)->indirectee;
*p = q;
I actually tried it and it broke a lot of things, but I don't understand why.
We basically turn this
heap closure -> IND_STATIC -> heap closure
heap closure -> heap closure
To me this should work, but for some reason it doesn't. Could you comment on why
this doesn't work?
More information about the ghc-devs