On Wednesday, 13 June 2018 at 09:45:04 UTC, Per Nordlöw wrote:
I've read up on Pony [1] and realized that it currently has a superior implementation of the actor model when it comes to combining safety, efficiency and memory management determinism (thread-local reference-counting GC with consensus guarantees)

AFAIK, vibe has thread-local GC.

1. @safely sending isolated (transitively unique reference to) messages between actors (tasks) without the need for copying. Vibe.d has, for instance, `makeIsolated` [2] that serves this purpose.

The sender can just retain the root pointer so that it's not collected.

2. a task-scheduler that can move blocked tasks between threads. Yes, I know, this has been discussed many times before...I'm checking to see if there are any updates.

The compiler got -vtls switch, with it you can eliminate usage of TLS and use moving scheduler just fine.

3. could we make such a solution GC-free by requiring immutable data inside isolated messages to be unique references (not currently implicitly shared) aswell using, for instance, https://dlang.org/library/std/typecons/unique.html. I'm thinking of a trait named something like `makeIsolatedUnshared` that checks these restrictions.

RegionAllocator looks good for this.

Reply via email to