Andy Dougherty wrote:
I was about to post a patch adding those functions in, but I see that
you're in the middle of a much more thorough review than I had attempted,
so my patch isn't going to apply anymore, and would probably be
misleading, to boot.
Just adding Parrot_allocate_aligned and Parrot_merge_memory_pools
shouldn't conflict. I'm pretty confident they will need to be
implemented custom for res_lea.c. (I haven't made any changes to the
file since my last commit.)
Going down that route anyway, I haven't solved any GC problems, so it may
not end up being a useful diversion. Still, I have been looking at the
hand-rolling of structures, such as this one at the top of resources.c, to
see if they could be simplified in the simplified --gc=libc case (where
we're not worrying about compaction and moving aligned pools to unaligned
places.)
+-----------------+
| ref_count |f | # GC header
obj->bufstart -> +-----------------+
| data |
v v
Sounds great.
Allison