gc_massacre branch is ready for merging.

Vasily Chekalkin bacek at bacek.com
Wed Sep 22 23:59:31 UTC 2010


Hello.

Ok guys, problem is much deeper.

Imagine some code like this:

void main() {
   int z = 0xsomeaddress;
   Parrot_run_pbc(...)
}

where PIR/PBC file contains something like this:

.sub main
  $P0 = new 'FileHandle'
  needs_destroy $P0
  sweep 0
.end

If address of $P0 is happen to be same as content of variable "z" from
C code than during tracing roots in C stack GC will mark $P0 as alive
and will not destroy it.

So, current schema of timely destruction is unreliable and can't be
used anywhere else small tests.

I strongly suspect exactly this happening on Darwin/i386 and causing
test failure.

So, we should deprecate current "timely destruction" schema and design
new one which will guarantee actual destruction of PMCs at particular
point of time.

In terms of branch merging I can just skip this test.

-- 
Bacek


On Wed, Sep 22, 2010 at 9:31 PM, James E Keenan <jkeen at verizon.net> wrote:
> Vasily Chekalkin wrote:
>>
>> Hello.
>>
>> I fixed c++ build and filehandle.t failure. I'm not sure about
>> packfile failure on win32.
>
> t/pmc/filehandle.t test 22 is still experiencing the same test failure on
> Darwin/PPC as previously reported in gc_massacre branch, updated to r49243.
>
> So the branch is not ready for merging.
>
> Thank you very much.
> kid51
>


More information about the parrot-dev mailing list