[Haskell-cafe] Simple question about blackholing

Jan-Willem Maessen jmaessen at alum.mit.edu
Wed Sep 16 18:35:24 UTC 2015


Whoops, quite right, and ThreadPaused.c (
https://ghc.haskell.org/trac/ghc/browser/ghc/rts/ThreadPaused.c) makes
clear that there's only one Blackhole tag.

On Wed, Sep 16, 2015 at 1:37 PM, Kei Davis <kei at lanl.gov> wrote:

> Jan,
>
> I suppose things could have changed since 2005, but taking "Haskell on a
> Shared-Memory Multiprocessor" (Harris, Marlow, Peyton Jones 2005) as the
> reference point, the figure in section 3.3 makes clear that a thunk's
> payload (free variables) remains valid until update with an indirection.
>
> The paper is also clear that there is only one header word, i.e., that a
> copy of the original header word isn't stashed in the header and that this
> header word is replaced with a blackhole (code pointer or info pointer).
> They do not state outright that such a copy isn't stashed in the payload
> together with the free variables, but if that were the case it would seem
> an odd omission given the level of detail otherwise.
>
> Kei
>
>
> On 09/16/2015 10:48 AM, Jan-Willem Maessen wrote:
>
>> I *believe* the answer is "Black holing happens as / after the thunk
>> contents are copied to the stack, so the contents of the thunk are now
>> dead and the data is live on a stack somewhere."
>>
>> -Jan
>>
>
> --
> Kei Davis
> Applied Computer Science Group CCS-7, Mail Stop B287
> Los Alamos National Laboratory
> Los Alamos, NM 87545, U.S.A.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150916/f0377bc7/attachment.html>


More information about the Haskell-Cafe mailing list