http://www.bitsavers.org/pdf/borland/turbo_pascal/Turbo_Pasc...
What is old is new again. :)
Truth!
Unless it zeros every page it allocated, I don’t see it being able to defend against it in practice.
> enabling developers to easily assign their own allocators
Through a combination of Zig's convention to pass around allocators instead of using a global allocator, the allocator interface's ability to return errors, and the Zig language forcing you to handle all errors (unless you explicitly discard them), a lot of Zig code is written with allocation failure in mind.
This means that you can seamlessly pass a custom allocator, say a bump allocator backed by a fixed buffer, to a function in some third-party library and still handle the case where the buffer runs out of space.
I did a quick search but didn't find anything substantial.