On Wednesday, 18 February 2015 at 20:47:36 UTC, deadalnix wrote:
On Wednesday, 18 February 2015 at 20:25:07 UTC, Dicebot wrote:
Right now I don't care for full memory safety or type safety
of any proposed solution. I will be glad to have any that
actually works - and I have not heard of any idea that allows
to do that without language changes. Your push for owned is
also hardly relevant because exceptions are good examples of
data with shared / non-determenistic ownership and thus won't
benefit from it.
I think it make sense to require that something thrown to be
owned. That means ownership can be transferred from one thread
to the other. That also mean that the compiler can free the
exception when it goes out of scope, which is what is wanted
for exception and @nogc to work together.
The invalid operation in @nogc would become promoting owned to
Tl/shared/immutable rather than not allocating at all.
This has added benefit to allow for way more code to be @nogc,
and in many cases transfers the GCness of something in the
caller, which makes for @nogc compatible libraries that can be
used in both @nogc and gc situation.
If we are gonna add something in the language, it'd better be
worth it.
+1
Could you take the time to make a concrete proposal? I'll try to
have another go at `scope`, which is of course deeply linked with
ownership, and these two things need to work well together. I
want to avoid proposing something that will later collide with
your ideas.