
I still don't understand the whole story with blackholes but I'll
update the comments around the BLACKHOLE stack frame and/or wiki pages
once I get a better understanding.
Ömer
2018-03-26 21:47 GMT+03:00 Ben Gamari
Simon Marlow
writes: The raise closure is declared to be a THUNK:
https://phabricator.haskell.org/diffusion/GHC/browse/master/rts/Exception.cm...
Another example of this is when an asynchronous exception is thrown, and we update all the thunks/BLACKHOLEs pointed to by the update frames to point to new thunks (actually AP_STACK closures) representing the frozen state of evaluation of those thunks. For this, see rts/RaiseAsync.c.
This thread has answered a number of interesting questions. It would be a shame if these answers vanished into the abyss of the ghc-devs archives.
Omer, do you think you could make sure that the discussion here is summarized in a Note (or ensure that the relevant notes reference one another, if they already exist)?
Cheers,
- Ben