At 4:41 PM +0200 9/8/04, Leopold Toetsch wrote:
Dan Sugalski wrote:

There are two simple answers here (the proposal for the change in the way interpreter context structs are handled isn't it -- we'll have the same problem because we'll still have backing stacks).

No. As layed out my scheme doesn't need any register backing stacks.

If you're cloning the context every time someone pushes a register frame... that's a bit excessive. If you're tossing the backing stacks, that's not an option.


... Either get COW working on the backing stacks as it ought, or switch to a one-frame-per-chunk scheme. Both will work out just fine.

Err. Ehem. We already switched to an one-frame-per-chunk scheme. Stacks aren't COWed anymore since quite a time[1]. See e.g. Perl 6 Summary posted on Mar 29th: "Dan ... made the decision to switch to single item per frame, immutable, non COW stacks. Leo implemented it."
This was the outcome of a longer discussion, where Piers had troubles with continuations.

Which is swell, but this stuff tends to change every few months. (Yesterday's leak hunt gave me a chance to dig into the interesting abomination the allocation/GC/DOD system's turned into since I last looked)


COWed stacks wouldn't help, AFAIK, anyway. The problem is the invalid context the continuation is holding.

Nonsense. If the continuation's got a hold of a chunk of the backing stacks then those stacks aren't invalid, chunks should get reclaimed by the DOD, and shouldn't get reused until they've been reclaimed. This *shouldn't* be happening. If it is then we're missing something straightforward that needs fixing.
--
Dan


--------------------------------------it's like this-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to