3 ms·
It means that you have to make sure to deallocate any memory you allocate when you are done with it. Basically, the same as C and C++, as opposed to garbage-col
by jdpage 15y ago
It means that you have to make sure to deallocate any memory you allocate when you are done with it. Basically, the same as C and C++, as opposed to garbage-collected languages like Python or Java, which will automatically detect when you are done with a chunk of memory and deallocate it for you.
- udp 15y agoIt's quite refreshing to see a new language that doesn't have garbage collection. Memory leaks have always been less of a problem for me than the kind of performance hit GC can cause (particularly in games).
- lemming 15y agoDoes the type system help out in any way with this? I know linear types can be used to enforce memory management, but IIRC (I haven't looked recently) Clay's type system was more oriented towards generics than this sort of strictness.
- jckarter 15y agoYou're correct; Clay's type system doesn't help much with memory safety. It's flexible enough to express RAII-based ownership semantics like C++, so you can manage dynamic memory with reference counted, uniquely-owned, or other policy-enforcing pointer objects, but also like C++, the language doesn't prevent you from taking nonowning references to arbitrary data behind the type system's back and using those references after the owning object has freed the data.