Steve Fink wrote:
On Jan-10, Leopold Toetsch wrote:Also I was thinking of: trace_system_areas could be run last in marking and if it finds some unanchored objects, it could print a warning, so we could really check, if we ware safe.
That's what defining GC_VERBOSE in parrot.h will give you right now,
Gave, until pobject_lives() changes ;-)
But I did reintroduce this with above idea. And a local GC_VERBOSE for easier switching.
and it's usually too noisy to be useful. For some reason, it seems to be very common to have old PMC pointers lying around on the stack.
Yep. Seems so. I'll continue my early anchoring patches, we will see.
(Which is a further argument against it, I guess -- the stackwalk may hang onto significant chunks of memory and cause later allocations to fail unnecessarily. That's true of most of the suggested schemes to some degree, but GC_VERBOSE gives an estimate of how bad it is for stackwalking. A poor estimate, though, since most of the stale pointers it finds are probably not holding onto much memory, but it can only get worse.)
And it's getting worse with register walking on RISC machines.
I am committing the summary I wrote into parrot/docs/dev/infant.dev,
Greate, thanks.
On the other hand, the other part of the impetus for *.dev files was
to pair them up with actual source files,
I'd rather have this kind of docu in the source file. leo