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