std library hooks
Manu
turkeyman at gmail.com
Fri Apr 13 06:07:42 PDT 2012
On 13 April 2012 14:07, Timon Gehr <timon.gehr at gmx.ch> wrote:
> 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<http://dlang.org/phobos/core_exception.html>
> deprecated void setAssertHandler(**errorHandlerType h);
>
> Why is it deprecated?
>
Awesome, I missed that. Although it sucks it's deprecated, what's the
intended alternative?
Now if I could only have more of those for malloc/free, and
fopen/close/read/write/seek etc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20120413/22cabb6f/attachment.html>
More information about the Digitalmars-d
mailing list