On 2/25/15 1:58 AM, Ivan Timokhin wrote:
Oh. So, whenever you pass a reference-counted slice around, you need to do
it with the full inc/dec protocol, which, as Walter has mentioned several
times already, leads to code bloat and performance hits. So... no to
efficient reference counting? Also, no slicing of static arrays in @safe
code?

Correct.

There's an issue of perception that I just figured, which explains a lot of the drama and trash talk about DIP25.

DIP25 is not a borrowing mechanism. Its charter is to make reference counted structs (and a variety of other structs) usable in @safe code. As RCSlice shows, with DIP25 a reference counted slice switches from unusable to usable in @safe code by adding one token to an otherwise unchanged implementation. That is Remarkable, and is Good Programming Language Design(tm).

Borrowing data in a scoped manner is the charter of DIP69. Given the excellent quality of DIP25, it's likely it is Here To Stay and DIP69, or any other proposal for borrowing, will work with it (and probably leverage it).


Andrei

Reply via email to