On Feb 14, 2006, at 4:06, Bob Rogers wrote:

   1.  Closure still needs a destroy method, and having one is in fact
sufficient to reclaim contexts that would otherwise be lost.

Ack.

   2.  In order to prove this (not to mention for debugging of
RetContinuation hackery), I added a fair amount of new CTX_LEAK_DEBUG
trace code, centralized it in interpreter.h, and put all of this output
under control of PARROT_CTX_DESTROY_DEBUG_FLAG so that it could be
turned on/off without recompiling.

Good. That simplifies further fixes.

   3.  While I was at it, I flushed most of the "#if CHUNKED_CTX_MEM"
code in src/register.c -- this code has serious bit-rot, and having two
implementations of Parrot_free_context et. al. tended to get in the way,
especially since M-. usually found the wrong one.  (Though you could
argue that I didn't go far enough in flushing all of the CHUNKED_CTX_MEM
stuff . . .)

Well, the original plan contained the usage of a linear chunked context/register memory. But it's right that the code is fully out-dated and non-functional and it's in the way, when jumping around through tags. Therefore it's really better to just drop that code and maybe re-implement it cleanly again *after* all issues are sorted out.

leo

Reply via email to