Heap allocation in the RTS

Ömer Sinan Ağacan omeragacan at gmail.com
Thu Sep 20 09:30:23 UTC 2018


allocateMightFail does the heap check for you and returns NULL. For the current
capability you can use MyCapability() in Cmm and pass the value to the RTS
function you're implementing.

Ömer

David Feuer <david.feuer at gmail.com>, 20 Eyl 2018 Per, 12:26 tarihinde
şunu yazdı:
>
> Aha! Okay. How do I get the current capability to pass to that? I guess I should probably perform a heap check before calling lookupSta bleName for simplicity, at least to start.
>
> On Thu, Sep 20, 2018, 5:16 AM Ömer Sinan Ağacan <omeragacan at gmail.com> wrote:
>>
>> Have you seen Storage.c:allocateMightFail ?
>>
>> Ömer
>>
>>
>> David Feuer <david.feuer at gmail.com>, 20 Eyl 2018 Per, 11:32 tarihinde
>> şunu yazdı:
>> >
>> > I'm working on re-implementing the stable name system. For the new design, it seems much cleaner to allocate stable names in lookupStableName (in rts/StableName.c) rather than in the C-- code that calls it. But I haven't seen RTS code that does heap allocation. Is it possible? If so, how do I do it?
>> > _______________________________________________
>> > ghc-devs mailing list
>> > ghc-devs at haskell.org
>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


More information about the ghc-devs mailing list