← Back to context

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.

  • 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 →