On Thursday, 2 October 2014 at 20:10:42 UTC, Ola Fosheim Grøstad wrote:
On Thursday, 2 October 2014 at 19:45:17 UTC, Ola Fosheim Grøstad wrote:
But is sketchy on implementation details, semantic restrictions that follows and consequences when interacting with foreign code etc.

Some Rust details. «sendable» means that a reference can be transferred to another thread (or task/fiber/whatever).

From http://doc.rust-lang.org/std/gc/ :

«The Gc type provides shared ownership of an immutable value. Destruction is not deterministic, and will occur some time between every Gc handle being gone and the end of the task. The garbage collector is task-local so Gc<T> is not sendable.»

From http://doc.rust-lang.org/std/rc/index.html :

«The Rc type provides shared ownership of an immutable value. Destruction is deterministic, and will occur as soon as the last owner is gone. It is marked as non-sendable because it avoids the overhead of atomic reference counting.

The downgrade method can be used to create a non-owning Weak pointer to the box. A Weak pointer can be upgraded to an Rc pointer, but will return None if the value has already been freed.»

So… they don't really solve the issues a @nogc version of D should be able to deal with beyond having built-in unique_ptr style semantics?

Or?

The Gc type is gone as of this week.

https://github.com/rust-lang/meeting-minutes/blob/master/weekly-meetings/2014-09-30.md

Reply via email to