I have been doing some "efficiency" modifications to Exim, which have
stirred up the code a lot in many places. The result has been running
sucessfully on some of our systems for several days now, so the time has
come to ask for a few voluteers to try it out elsewhere, in order to
find out what other things I have broken (I found the first few myself :-).
I have put a testing release in
ftp://ftp.cus.cam.ac.uk/pub/software/programs/exim/exim-1.926-alpha.tar.gz
There are some new features and bug fixes as well as the "efficiency"
changes. All are listed in doc/ChangeLog, and doc/NewStuff documents new
features briefly. The main documentation is not updated.
The "efficiency" changes are:
. Instead of calling malloc() for every small chunk of store that it
needs (and not always freeing it), Exim now gets large chunks of store
from malloc() and uses them up as required, doing a single clean-up after
a major cycle of activity such as receiving a message over SMTP. (For
long-lived data such as the host name, malloc() is still used.) This is
the change that has stirred up the code the most. Some related changes
such as not making a copy of an expansion string unless it contains
expansion meta-characters were also done.
. Exim used to write each header line with a separate call to write(). Now
the entire message data gets buffered up, so for small messages only a single
write() happens.
. Instead of a single lookup cache record, Exim now remembers the last
lookup for each open file/database.
. The EHLO response is now buffered up into a single write().
Please report any problems direct to me, and I will try to fix them
asap.
Philip
--
Philip Hazel University Computing Service,
ph10@??? New Museums Site, Cambridge CB2 3QG,
P.Hazel@??? England. Phone: +44 1223 334714
--
*** Exim information can be found at
http://www.exim.org/ ***