Jason Haar <Jason(_dot_)Haar(_at_)trimble(_dot_)co(_dot_)nz> writes:
What are the real reasons why procmail reads the entire message into
memory, and could it be altered to not do that?
It is my understanding that it was an explicit design decision by
Stephen for procmail to not use temporary files. This simplifies
the internal immensely, such that you'll find it the assumption in
many places in the code.
I'll note that procmail's memory allocation method interacts 'poorly'
with several system's libc's memory allocation code: procmail assumes
that realloc()ing the last allocated block is a fast and effient
operation. That's not true on some systems, such that the initial
reading in of the message takes up much more memory that it should.
I've been investigating ways to fix this, but as the system doing mail
delivery here doesn't suffer from this defect, it's priority falls
below that of my work projects.