4 ms·
"Rust is manually memory managed" Is it? As I understand it, memory is handled primarily by the ownership system, and sometimes by reference counting. That doe
by winstonewert 10y ago
"Rust is manually memory managed"
Is it? As I understand it, memory is handled primarily by the ownership system, and sometimes by reference counting. That doesn't seem to be manual memory management to me.
- spullara 10y agoIt is basically implicit manual memory management. You make sure that your ownership is properly accounted for and it will then properly manage the memory they use. Unlike in GC languages, you pretty much have to understand everything about how your resources are managed, even in the API design phase.
- winstonewert 10y agoIs reference counting not implicit manual memory management as well?
- pcwalton 10y agoNo! Reference counting is dynamic tracking of object lifetimes. If reference counting is implicit manual memory management, then so is tracing GC!
- winstonewert 10y agoManual means "a thing operated or done by hand rather than automatically or electronically, in particular." It is very strange to me that you've decided the manual means: non-dynamic tracking of object lifetimes.
- nenreme 10y agoGarbage collector frees objects when there are no more references to them. It thus does automatic memory management. Borrow checker on the other hand doesn't alter lifetimes of objects, instead it doesn't allow you to keep references to things that were destroyed. I.e. it doesn't manage memory.
- winstonewert 10y agoSure, but I was talking about Rust's ownership system which certainly does alter the lifetime of objects. Rust automatically frees objects when the owner scope ends.