On Wed, Mar 28, 2018, 10:51 PM Vinnie Falco via Boost
If someone wants to target an outdated architecture (and 32-bit x86 really is a separate architecture, including hardware features and software ABI)
On Wed, Mar 28, 2018 at 5:49 PM, Andrey Semashev via Boost
wrote: then let them do that with a little more effort. The rest of the world have moved to 64 bits long ago, and that is what we should target by default, IMO.
No they have not all "moved on to 64 bits." Most programs work perfectly fine as 32-bit applications and have no need for the ability to access a full 64-bit address space. In fact many programs perform objectively worse as 64-bit application since pointers and data structures become larger without a corresponding benefit. This is especially true for mobile applications.
Rumors of 32-bit apps' demise are greatly exaggerated.
The corresponding benefit is access to twice as many CPU registers (on amd64, anyway) which provides a notable performance benefit to many applications (given a compiler outputting code that leverages it). I don't know if the same can be said for other 64-bit architectures. amd64 was released in 2000. The debian project reported that in 2012, downloads of the x86_64 architecture surpassed the x86 architecture. The addition of the NX bit is a security improvement in amd64 that x86 cannot leverage, and given what we've seen recently, CPU enforced security (and correctness) is pretty important. We're not saying that we won't support 32-bit, however if someone just says "b2" on an x86 based platform it should default to an address-model of 64 unless otherwise overridden. - Jim