On Mon, 24 Feb 2014 17:03:23 +0100, Sönke Ludwig wrote:

You mean GC allocated. Using a free list based allocator for example,
surely is fast enough. What's missing is a way to use manual allocators
for exceptions (safely, more or less).

It is not that simple. Problem is de-allocation - for raw classes destruction is not determenistic so there is no hook to call "allocator.free". Asking user to do it manually goes against safety concerns. Wrapping inside ref-counted struct can be an option but then you can't catch base classes because structs are not polymorphic.

I honestly don't know what a safe and performant solution can be here. If I ever considered using vibe.d for perfomance-critical project, I'd likely just fork it and provide status codes based rendering alternative. But that is not a solution you are loking for :)