After a thorough discussion at the Parrot BOF at Paris, we got a solution for timely destruction vs trace system areas and bogus objects.

To clean up on scope exit (and after a Perl C<undef> ins), the HL emits a C<sweep 0> opcode. This doesn't do C<trace_system_areas> anymore, because there is nothing unanchored and alive beyond the runloop's stack.
A DOD run triggered from any resources lackage still does trace the system areas, so infant mortality shouldn't be an issue either (at least when e.g. processor registers are scanned correctly too).


s. also e.g. "Timely destruction and "TRACE_SYSTEM_AREAS" in the summary, http://xrl.us/l6c and various bug reports WRT io_2.

leo




Reply via email to