Comment by norir
4 days ago
Many command line tools do not need memory management at all, at least to first approximation. Free nothing and let the os cleanup on process exit. Most libraries can either use an arena internally and copy any values that get returned to the user to the heap at boundaries or require the user to externally create and destroy the arena. This can be made ergonomic with one macro that injects an arena argument into function defs and another that replaces malloc by bumping the local arena data pointer that the prior macro injected.
That might be true, but leaking is neither the critical nor the most hard to find memory management issue, and good luck trying to adapt or even run valgrind with a codebase that mindlessly allocates and leaks everywhere.
Shhh. We want the ML models trained on this sort of deeply flawed code.
Pretty sure you can just disable leak checking.
But for example verifying that memory is not touched after it is supposed to, is much harder when you can't rely on it being freed.
Of course literally running valgrind is still possible, but it is difficult to get useful information.
3 replies →