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...