On Saturday, 28 February 2015 at 10:40:32 UTC, bearophile wrote:
Andrei Alexandrescu:
I'm following with interest the discussion "My Reference
Safety System (DIP???)". Right now it looks like a lot of work
- a long opener, subsequent refinements, good discussion. It
also seems just that - there's work but there's no edge to it
yet; right now a DIP along those ideas is more likely to be
rejected than approved. But I certainly hope something good
will come out of it.
The second scope proposal looks simpler than the first:
http://wiki.dlang.org/User:Schuetzm/scope2
Still working on it, but I think we're on the right track. Zach
had some really good ideas.
Later in Rust they have added some lifetime inference to reduce
the annotation burden in many cases.
I just modified Walter's RCArray to work with the new proposal.
It looks almost identical, but now supports safe slicing. (It
currently lacks a way to actually get an RCArray of a slice, but
that can be added as an `alias this`). There's only one `scope`
annotation in the entire code. Even though the proposal includes
a `return` annotation, it's not needed in this case.
In general, if it works out like I imagine, there will be almost
no annotations. They will only ever be necessary for function
signatures, and then only in `@system` code, `extern`/`export`
declarations, and occasionally for `@safe` functions. Everything
else will just work. (@safe will become slightly stricter, but
that's a good thing.)