|
Boost : |
From: Jose (jmalv04_at_[hidden])
Date: 2006-09-14 14:04:22
On 9/14/06, Giovanni Piero Deretta <gpderetta_at_[hidden]> wrote:
[ .. description on how RIFE implements full continuations in Java .. ]
These are a too great limitation for a general purpose library like
> mine (even RIFE provieds a way to disable full continuations with
> setCloneContinuation(false)). Also walking the stack to search for
> object to copy cannot be implemented portably (or even non portably),
> unless one where to be restricted to never allocate non builtin stack
> objects and have all heap allocated objects inherit from a common
> base. This would kill performance, would be a very non iodimatic c++
> and still be hard to do and very fragile.
>
> Theoretically compiler support could make coroutine copying possible
> and even relatively cheap (no much more than the cost of copying every
> single local object in scope) . In fact some compilers know at every
> moment the set of all objects alive in the stack for unwinding
> purposes.
>
> For the time being my library is stuck with non-copyable coroutines.
Then I see two interesting and not mutually exclusive paths to follow:
- implement the one shot continuation examples, although the multiple
web cont. implementations out there seem to do full cont. (at least Scheme,
Java, Ruby, ..)
- experiment with an implementation for Linux only, and check whether
performance and
fragility are major issues (the interpreted versions out there don't seem to
complain about
that but I am not sure they are used in high performance cases)
Thank you for helping me understand this complex topic !
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk