I decided to slow down and quit doing games/graphics/embedded learning projects that assume dependencies for (good) reasons. So now I am building a project with no clear end point except being written with a possible embedded target in mind later and mostly just implementing as much as I can myself.
I have a working (well, failing but correct) allocator and I wrote the build.zig myself instead of deleting the parts I don’t need from zig init this time.
So far all my allocator does is claim a pool and return null. Keeping a possible embedded target in mind, I am thinking I want this allocator to mostly create its own heap? Could have applications on desktop targets (better memory introspection and maybe faster performance because it will mostly only end up doing exactly what it needs to and nothing else, plus it can be created and dumped wholesale like an arena), but most of the advantage is implementing my own heap.
The problem is that I am at that point now but I am not sure how I want to do it? There are apparently a lot of options and algorithms and none of them are cleanly better than the rest. I at least want to be able to actually free and reuse arbitrary data, but obviously fragmentation becomes a problem and I am having decision paralysis. It doesn’t really matter probably but I could use a hand working through it