std library hooks

Timon Gehr timon.gehr at gmx.ch
Fri Apr 13 04:07:41 PDT 2012


On 04/13/2012 12:47 PM, Manu wrote:
> No comment...
>
> I'm also finding that I really need an assert hook. The default assert
> implementation is not useful to me, and just crashes my programs
> (exceptions when interacting with C is problematic).
> I'd like to route runtime asserts through my own system. A simple
> backend hook would sort me out here too..
>
> Does anyone know any existing way to do the stuff I'm talking about here?
> If not, what do people think about the possibility of putting hook
> register functions into druntime?
>
> On 9 April 2012 03:59, Manu <turkeyman at gmail.com
> <mailto:turkeyman at gmail.com>> wrote:
>
>     So one thing that almost every major middleware provides, is an
>     interface to hook your own allocation and filesystem callbacks under
>     the hood, to allow integration with your potentially complex technology.
>
>     In my industry, memory and filesystem hooks are non-negotiable. We
>     can't use any middleware that does not provide them.
>     Traditionally, we have a problem with the C library, and many core C
>     libs which depend heavily on the CRT. Almost all games engines have
>     to wastefully rewrite large portions of the CRT, just to implement
>     the appropriate memory and filesystem interface, and some super
>     handy common libs are lost to us due to lack of this foresight.
>
>     So this in mind, many of the goodies in phobos are currently
>     unusable to us (although fortunately source is available).
>     Has it ever been considered to allow hooks into the backends of
>     those systems which could be registered at runtime?
>     It would be simple to provide an API where you could register the
>     filesystem primitives, which all standard libraries would then
>     magically route through (huzzah!).
>     A primitive malloc/free hook would be nice to have too, that way we
>     can direct memory to the appropriate locations, and keep mem stats
>     along with the the rest of the system.
>     It's not uncommon to malloc the entire heap on boot, and implement
>     our own heap management through our own API's. Obviously system
>     functions would fail to allocate memory in this environment...
>
>     Having these hooks in phobos would also lift this burden off of
>     library developers (usually only added on request with a few months
>     turn around time, which is no good for project scheduling), and it
>     would never prevent us access to those libraries where the
>     developers never considered our use case.
>
>

http://dlang.org/phobos/core_exception.html
deprecated void setAssertHandler(errorHandlerType h);

Why is it deprecated?






More information about the Digitalmars-d mailing list