On Nov 23, 2005, at 19:08, Chip Salzenberg wrote:

You keep confusing static and dynamic call information.

While at static objects like subroutine PMCs - there is some code around that is setting properties on .Sub objects.

$ find . -name '*.imc' -o -name '*.pir' | xargs grep -w setprop

At least one in runtime/parrot/library/Stream/Writer.imc is bogus if not illegal:

    .const .Sub stub = "_reader_stub"
    setprop stub, "CALL", source

What should we do WRT e.g. setprop:

- disallow it at all for .Sub PMCs (it would be ok for .Closures, because these are distinct)
- only allow it for 'clone'ed subroutine PMCs
...

See also src/packfile.c:3200 and :377. The latter ('mark_1_seg') is run from GC to keep PMC 'constants' alive and I really don't like this. If PMC constants are created in the constant PMC pool, DOD-marking isn't needed anymore.

leo

Reply via email to