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

Reply via email to