NuMem 0.5.4 has been released, numem is a new library I am developing with contributions from Auburn Sounds/p0nce. It's meant to provide safer ways of writing nogc code, which is sometimes neccesary when the D garbage collector would be an unoptimal choice.
NuMem currently features:
- C++ style smart pointers (unique_ptr, shared_ptr, weak_ptr)
- C++ style vector type (with support for moving unique_ptr's in!)
- Alternative for new and destroy;
nogc_new
andnogc_delete
. - A string alternative built on the vector implementation
- Automatic null-pointer handling, for easy passing of strings to C.
- A
minimal_rt
mode meant for environments where only a tiny subset of the D runtime is present, with custom handling of class destruction that doesn't use TypeInfo.- Eg. the port of D I'm making for the SEGA Dreamcast.
We plan to add more memory management utilities, thereby making writing completely GC-less D code a lot more user-friendly.
You can find the package here
https://code.dlang.org/packages/numem
Additionally, the yxml
package uses numem's smart pointers and strings.
https://code.dlang.org/packages/yxml