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.