>> - In our recent discussions at the all-hands, we were leaning towards
>> eliminating the ability to send higher-order data over channels. This
>> would be in tension with the desire to migrate tasks.
> 
> This would make it easier to migrate tasks, no?

Right. If we could send closures, we could at least simulate task migration by 
packaging up the work as a function and sending it to another task that was 
programmed to accept the closure and invoke it. Without continuations, though, 
you can't suspend your work at arbitrary points unless you use CPS.

> A language that makes call-cc cheap would make task migration cheap, but is 
> there a way to do it without putting the majority of the data in a common 
> GCed heap (a la smlnj)?

Absolutely -- the paper I linked to shows 10 or so different implementation 
strategies, and shows much more sophisticated approaches that are still largely 
stack-based.

Dave

_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to