Safe and performant actor model in D
Kagamin
spam at here.lot
Wed Jun 13 12:13:29 UTC 2018
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.
More information about the Digitalmars-d
mailing list