forcing "@nogc" on class destructors

Meta via Digitalmars-d digitalmars-d at puremagic.com
Tue Jan 20 10:17:56 PST 2015


On Tuesday, 20 January 2015 at 18:12:27 UTC, ketmar via 
Digitalmars-d wrote:
> Hello.
>
> as there is no possibility to doing GC allocations in class
> destructors, wouldn't it be nice to just force "@nogc" 
> attribute on
> such dtors?
>
> i know, i know, "this will break alot of code". i'm pretty sure 
> that
> this will break alot of INVALID code, which better be broken at
> compile-time anyway.
>
> sure, we have alot of code of pre- at nogc era, and alot of code 
> where
> authord didn't bother to add attributes at all. so we can 
> introduce
> "--force-dtor-nogc" CLI arg and document this change, making it 
> opt-in
> for, say, six month and opt-out after that.
>
> and i know that D devs (Walter at least) are resistant to 
> command-line
> flags that changing compiler behavior. i don't know how to 
> overcome
> this. say, by adding "@gc" attribute, which dfix can 
> automatically add?
>
> but i still believe that instead of telling people again and 
> again that
> they should not allocate in class destructors, we can use 
> computer
> itself to track and stop this behavior.
>
> let's see how this proposal will be rejected. will there be 
> some sane
> reasons, or only the good old song about "broken code"? make 
> your bets!

Isn't this just an implementation detail of the current garbage 
collector? If so, then we shouldn't tie language semantics to it, 
as it could change.


More information about the Digitalmars-d mailing list