News for hackers. Stuff that matters.
Re:Swift is a more convenient Rust by tialaramex on Friday September 06, 2024 @10:09AM (#41466382)
You can't call Drop::drop for type T at all. Try it if you don't believe me.

It would be unacceptable to allow this because Drop::drop says it only takes a mutable reference &mut T (and indeed it does) but now the thing is destroyed, so, that wasn't just a mutable reference at all!

You can call core::mem::drop<T> but well, look at it, here's the code:

pub fn drop<T>(_x: T) {}

Like, duh, we give it a T and then it doesn't give anything, the T is gone. That's not magic library code by the way, if we make our own:

pub fn vanish<T>(_x: T) {}

Now we can call our vanish function and the same happens.

So yeah, automatic memory management.

Re:Swift is a more convenient Rust by consteval on Friday September 06, 2024 @12:55PM (#41467779)
To be fair I don't think this is enough to say automatic memory management, otherwise C++ would be automatic memory management too (and maybe it is, just poorly implemented?)
Re:Swift is a more convenient Rust by tialaramex on Friday September 06, 2024 @01:08PM (#41467881)
Yes, C++ has automatic memory management.

As with the rest of the language, the automatic memory mangement requires that your program has no mistakes - which requires inhuman amounts of care during implementation and testing. So, that's obviously a spectacularly bad idea, but it's still automatic memory management.