NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
STRING Problems (Score:1)
That reminds me a little bit of Parrot RT #51652 [perl.org]. I'm not sure it's the same problem, but that part of Parrot can be a little fragile.
Re:STRING Problems (Score:1)
Good call. The ticket number is right even though the link is wrong.
I added in a few statements to test for the basic isomorphisms that I've been relying on:
PARROT_ASSERT(offsetof(Buffer, flags) == offsetof(PObj, flags));
PARROT_ASSERT(offsetof(Buffer, flags) == offsetof(PMC, flags));
PARROT_ASSERT(offsetof(Buffer, flags) == offsetof(STRING, flags));
PARROT_ASSERT(offsetof(Buffer, flags) == offsetof(Stack_Chunk_t, flags));
All these assertions appear to be passing. I'll dig through src/headers.c and some of my allocators again, and make sure that I am not relying on any other relationships besides these.
I do know that I could probably do better in aligning data in memory. I currently pack things together tightly in the arenas, and this throws off object alignment. On the off-chance that poor alignment could cause a segfault, I'll go back and redo this.
Andrew Whitworth
Reply to This
Parent