@gc attribute for bypassign @nogc
bitwise via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jul 25 19:42:52 PDT 2016
On Tuesday, 26 July 2016 at 01:07:27 UTC, Chris Wright wrote:
> On Mon, 25 Jul 2016 15:46:54 +0000, bitwise wrote:
>
>> On Monday, 25 July 2016 at 07:43:34 UTC, rikki cattermole
>> wrote:
>>> I've been saying for a very long time we need @assumenogc
>>> attribute like we have @trusted for @safe.
>>
>> So I'm not crazy then ;)
>>
>> I'm wondering if Andrei and Walter consider @trusted a win
>> though. They seem to have such firm stances on certain issues
>> that it makes me wonder if they consider things like @trusted
>> a liability.
>>
>> Personally, I lean way to the side of flexibility, and believe
>> a good language shouldn't force you to code a certain
>> way(within reason). I feel like this type of feature is very
>> reasonable.
>>
>> Bit
>
> @nogc conflates "doesn't allocate memory from the GC heap
> because I don't want my application to use the GC at all" with
> "doesn't cause GC collection pauses".
>
> The latter can have a @assumenogc annotation that works -- you
> call GC.disable and GC.enable as appropriate. The former can't.
Fair point.
You got me thinking though. For my intended usage, I don't
actually need errors for GC allocation, and that may actually be
inappropriate. I just need to make a best effort to avoid
allocations.
Something like @warngc could work nicely. It could function
exactly as @nogc with the exception that it issued warnings
instead of errors.
I feel like some people reading this would be very quick to scold
me for "premature optimization", and recommend a profiler, but in
the case of 30-60 fps games, it's practically guaranteed that you
will eventually run into performance problems. Especially on
mobile devices. So proactively writing good code can save you a
lot of headache.
Bit
More information about the Digitalmars-d
mailing list