On Friday, 27 February 2015 at 00:10:00 UTC, deadalnix wrote:
On Thursday, 26 February 2015 at 21:50:56 UTC, Andrei Alexandrescu wrote:
http://wiki.dlang.org/DIP74 got to reviewable form. Please destroy and discuss.

Thanks,

Andrei

"The compiler detects automatically and treats specially all classes and interfaces that define the following two methods:"

Well, RefCounted could use compile time reflexion to do so. Even better, we could define a lvalue property for RefCounted to use a counter so we can do intrusive counting in both classes and structs.

"@safe code may not issue explicit calls to opAddRef/opRelease. "

I guess we could simply make them @system .

" RCOs objects are subject to additional limitations compared to their GC counterparts:

No conversion to Object or interfaces that are not reference counted "

No problem, I'm gonna duplicate all my code and as will every single library writer out there.

Missing:

All write of RCO reference to statics must be atomic and ordered as long as the language can't enforce thread locality (at least in @safe code).

Generally:
This DIP works around (announced) limitations of DIP25. As escape can only be checked properly for type with no indirections, and only solve the problem for classes/interfaces. Other type with indirection remains an unsolved problem.

If I were in charge, that would be a clear no, and the sign that DIP25 approach needs to be reworked, as wack-a-mole is not a good way to handle design.

We all pray you become less of a gaping asshole before youre in
charge of anything.

Reply via email to