Disable GC entirely
Benjamin Thaut
code at benjamin-thaut.de
Wed Apr 10 06:45:46 PDT 2013
Am 09.04.2013 14:00, schrieb Johannes Pfau:
> Am Tue, 09 Apr 2013 11:29:09 +0100
> schrieb "Regan Heath" <regan at netmail.co.nz>:
>>> A good & simple start would be a -vgc switch, similar to -vtls which
>>> prints out all hidden memory allocations. Custom allocators are
>>> still important for the library (toString etc). Apart from that I
>>> would just stay away from language features which allocate. For
>>> example instead of using the concatenate operators I'd just use
>>> something like appender (which should then support custom
>>> allocators).
>>
>> Did you see Manu's problem case? I can't recall the method name but
>> it was not one which suggested it would allocate, and it didn't in
>> the general case but in a very specific case it did. As it stands,
>> it's very hard to tell which language features allocate (without code
>> inspection of the compiler and standard library) so it's hard to
>> avoid.
>>
>> R
>>
>
> toUpperInPlace IIRC? Yes, -vgc would not directly help here as
> toUpperInPlace is a library function. But I think this is a library /
> documentation bug:
>
> 1: We should explicitly document if a function is not supposed to
> allocate
> 2: If a function is called "inPlace" but can still allocate, it needs a
> huge red warning.
>
> Those kind of things can be solved partially with correctly documented
> functions. But hidden allocations caused by the language (closures,
> array literals) are imho more dangerous and -vgc could help there.
> Without -vgc it's very difficult to verify if some code could call into
> the gc.
>
> Btw: implementing -vgc shouldn't be too difficult: We have to check all
> runtime hooks ( http://wiki.dlang.org/Runtime_Hooks ) for allocations,
> then check all places in dmd where calls to those hooks are emitted.
>
It's actually very easy to find hidden allocations. If you remove the gc
entierly from the runtime hidden allocations will cause linker errors.
Kind Regards
Benjamin Thaut
--
Kind Regards
Benjamin Thaut
More information about the Digitalmars-d
mailing list