Just guessing here, maybe this thunk type lives in (read-only?) static sections, and as such it will never be overwritten with forwarding pointers?
Gabor On 2/5/19, Ömer Sinan Ağacan <omeraga...@gmail.com> wrote: > I just came across a closure that is according to this code is not valid: > > >>> print *get_itbl(0x7b2870) > $8 = { > layout = { > payload = { > ptrs = 0, > nptrs = 0 > }, > bitmap = 0, > large_bitmap_offset = 0, > __pad_large_bitmap_offset = 0, > selector_offset = 0 > }, > type = 21, > srt = 3856568, > code = 0x404ef0 <r1Al_info> > "H\215E\360L9\370rDH\203\354\bL\211\350H\211\336H\211\307\061\300\350|\034\062" > } > > This is a THUNK_STATIC with 0 ptrs and nptrs in the payload. > > Ömer > > Ömer Sinan Ağacan <omeraga...@gmail.com>, 4 Şub 2019 Pzt, 16:23 > tarihinde şunu yazdı: >> >> Hi, >> >> I was trying to understand why some info tables that have no ptrs and >> nptrs like >> GCD_CAF end up with 1 nptrs in the generated info table and found this >> code in >> Constants.h: >> >> /* >> ----------------------------------------------------------------------------- >> Minimum closure sizes >> >> This is the minimum number of words in the payload of a >> heap-allocated closure, so that the closure has enough room to be >> overwritten with a forwarding pointer during garbage collection. >> >> -------------------------------------------------------------------------- >> */ >> >> #define MIN_PAYLOAD_SIZE 1 >> >> We use this in a few places in the compiler and add at least one word >> space in >> the payload. However the comment is actually wrong, forwarding pointers >> are made >> by tagging the info ptr field so we don't need a word in the payload for >> forwarding pointers. I tried updating this as 0 but that caused a lot of >> test >> failures (mostly in GHCi). I'm wondering if I'm missing anything or is it >> just >> some code assuming min payload size 1 without using this macro. >> >> Any ideas? >> >> Ömer > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs