Objects like runs, closures/functions and flows either take unnecessary stack space or cannot be persisted to the stack.
We need a way for such objects to be passed between partitions. This may end up being more than one story, as closures may require special treatment.
One idea is to implement multimethods to provide specialized encode and decode behavior. This will require a deep traversal over partition bindings at the beginning an end of every runlet. Such a technique should work for Runs and Flows, which might be persisted as a RunRef and as a GlobalDef, respectively. Closures will need special handling.
Objects like runs, closures/functions and flows either take unnecessary stack space or cannot be persisted to the stack.
We need a way for such objects to be passed between partitions. This may end up being more than one story, as closures may require special treatment.
One idea is to implement multimethods to provide specialized
encode
anddecode
behavior. This will require a deep traversal over partition bindings at the beginning an end of every runlet. Such a technique should work for Runs and Flows, which might be persisted as aRunRef
and as aGlobalDef
, respectively. Closures will need special handling.