I understand the issue about linking to a chain of applications, and this
is the only reason why I'm even following this discussion instead of
letting it drop.
Is there really a benefit to 64-bit mode in this particular chain, which
(as I understand it) is Apache -> PHP -> c-client?
I'm trying to understand why anyone needs Apache or PHP to be in 64-bit
mode, given that it is likely to be slower and consume more RAM.
What is there about Apache or PHP that benefit from 64-bit mode?
Actually, what is it about 64-bit mode that people need? The list of
benefits that I can come up with:
. more address space if the application needs more than 4GB of VM
. faster arithmetic with integers greater than 2^31-1 (or 2^32-1 for
unsigned ints)
. faster arithmetic with high-precision floats (I agree that 32-bits
is woefully inadequate for floats).
. easier handling of long-file support (which is a separate issue,
and the mix format is probably a better solution for the large
mailbox problem than long-file flat files).
There's certainly a domain of applications in which this is important.
Speaking as a former LISPer I understand how the AI guys would be
clamoring for more VM. The people doing high-precision scientific
computing certainly could benefit from higher precision values.
However, I just don't see how email and web servers are part of this
domain. It has all the appearance of some salesman convinced the boss
that "64-bits is better than 32-bits" without performing a sanity check
for their applications.
IMAP's fundamental values are unsigned 32-bit; it's defined that way in
the protocol. Even if c-client is built in 64-bit, those 64-bit cells are
just going to pass around 32-bit values.
So the only benefit for c-client is that having more VM allows handling
large IMAP strings; IMAP allows strings to be up to 4GB. I'm not seeing
people hopping up and down asking for IMAP to have 4GB char*s in RAM...
not yet, anyway.
Most of the compiler diagnostics that people are focusing on are snarks;
they make no difference since the right transformion is done anyway. The
problem is when the compiler makes the wrong transformation, typically by
incorrect pointer alignment. Since c-client is heavily prototyped to
avoid just such problems, it's going to be something that the compiler
didn't catch (and hence no diagnostic); ferreting out those problems
requires problem observation (other than "it doesn't work"), code study,
and time in the debugger.
For this particular case, it seems like a lot of work for no actual gain,
or even a loss if it turns out that a 32-bit Apache -> PHP -> c-client can
do the job faster and with less memory.
Please understand that I'm not trying to be argumentative; I really want
to understand this issue.
-- Mark --
http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.
_______________________________________________
Imap-uw mailing list
[email protected]
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw