| ▲ | ktpsns 2 hours ago | |
I find the arena experiment very interesting. If done right, whole programs can be structured as as a set of arenas. I've read some things on arenas here such as https://news.ycombinator.com/item?id=37670740 | ||
| ▲ | b33j0r an hour ago | parent | next [-] | |
I am a low-level zig guy right now too. I have been around for a long time, and it’s funny to see arenas come back into vogue as a solution to nearly everything. Arenas are great for avoiding allocations per tick/request/frame/layer. No symmetric free() to bracket lifetimes! They have a purpose, and we always knew that. But by definition, your program is over-allocating as a tradeoff. Makes a ton of sense in certain use cases. However, we didn’t invent garbage collection and borrow-checking and realloc() just to publish papers ;) Half of my time programming zig is spent considering allocation strategies. That’s a feature. “Where are the bytes?” | ||
| ▲ | fredrikholm 2 hours ago | parent | prev [-] | |
Once allocators in general click, memory management in C becomes a total breeze. Combined with typed fat pointers (slices and strings), typed hashmaps and stack-trace-assertions, C in general becomes quite nice. The rest is compiler flags. Go solves this by being a better language out of the box, but with the Wirthian aspects removed they feel very similar. Perhaps not so surprising. | ||