Am 29.02.2016 um 11:20 schrieb ZombineDev:


Hi Sonke,

I'm really interested in your work on a new event loop abstraction. One
of the big issues for the project I'm working on is that the current
implementation is not
@nogc and nothrow (while most of my code that doesn't interact with
vibe.d is nothrow, @nogc and where possible pure).
Another thing that I would like to request is support for
std.experimental.allocator. I need to be able to provide an allocator
through which all vibe-core allocations should happen.
Just to clarify, I'm only interested in having a @nogc/nothrow event
loop, as my project is a rather low-level (it is meant to be used both
from C and D code) and I won't need the other parts of the framework
(like web, db, etc.). And I think it's OK to use the GC for
application-level logic.

Everything is @safe and nothrow as far as possible. The plan is also to basically have no dynamic memory allocations after the warmup phase. However, @nogc is still difficult, because still a lot of Phobos and Druntime are not annotated, and because that would mean that all callbacks would have to be @nogc, too. Especially the latter can only be solved by converting the API to take callbacks as an alias template parameter, but if possible I'd like to keep the possibility of passing an `interface` around to hide the implementation...

Reply via email to