Skip to main content


I had been perusing the perlguts documents and there is a strong warning against allocating memory with eg alloc for use in C code that interfaces with Perl suggesting that buffers be allocated with Newxs (or equivalent) even if they don't leave the guts. What is the base of this statement?

I am trying to understand whether conflicts would arise the way memory is managed through the MMUs working with the OS nowadays. Theoretically it shouldn't lead to any issues as the OS would not release memory that has been allocated before (even it has not been mapped by the process). Unless one were to deallocate memory using facilities different than the one used to allocate the memory in the first place one should be OK to mix allocators as they have different performance for different patterns of memory use? Am I missing something?

submitted by /u/ReplacementSlight413
[link] [comments]