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