scope escaping
Adam D. Ruppe
destructionator at gmail.com
Thu Feb 6 11:00:28 PST 2014
On Thursday, 6 February 2014 at 18:29:48 UTC, Matej Nanut wrote:
> I just stumbled upon Rust's memory management scheme yesterday
> and it seemed similar to this.
Yeah, I haven't used rust but I have read about it, and the more
I think about it, the more I realize it really isn't that new -
it is just formalizing what we already do as programmers.
Escaping a reference to stack data is always wrong. We know this
and try not to do it. The language barely helps with this though
- we're on our own. We can't even be completely sure a reference
actually is GC since it might be on the stack without us
realizing it.
So what the Rust system and my proposal (which I'm pretty sure is
simpler than the Rust one - it doesn't catch all the problems,
but should be easier to implement and use for the majority of
cases) does is try to get the language to help us get this right.
It's the same thing with like error handling. In C, you know you
have to clean up with a failed operation and you have to do it
yourself. This is often done by checking return values and goto
clean up code. In D, we have struct destructors, scope(failure),
and exceptions to help us do the same task with less work and
more confidence.
More information about the Digitalmars-d
mailing list