On Wed, Apr 8, 2015 at 11:34 AM, Gavin Lambert
On 8/04/2015 19:37, Andrey Semashev wrote:
Well, IMO the code that didn't manage to get ported to 64 bits for the last 10 years is dead and I would eagerly avoid using it in new projects and even make effort to get rid of it in the currently maintained ones.
In the Windows environment, this is not a valid assumption. It is still probably the case that more than 80% of non-driver-based applications are 32-bit only. (Though like any made-up statistic, take that with a grain of salt.)
For another perspective, look at the major applications: Firefox is 32-bit only (barring unofficial builds). Office has 32-bit and 64-bit versions, but the 32-bit version is the recommended one for general users (who don't need to edit large documents). Visual Studio itself is 32-bit only. Go to any typical Windows box (that has had some real usage, not just a freshly installed one) and count the number of applications in Program Files vs. those in Program Files (x86).
Ok, I see what you mean. However, that doesn't look like a technical reason to build Boost for 32-bit Windows by default.
Also, since I forgot to respond to this point earlier:
BTW, I think 32-bit Windows spread is overestimated. Here are some stats from Steam, for example (click "OS Version" in the table):
While Steam is somewhat ubiquitous, it's still a gaming platform. And gamers will almost always have 64-bit systems because they want the RAM -- it's rare to find a modern game that isn't RAM-hungry, and even games of a decade ago often wanted 2GB, which meant your system would run better if you could have the magic 4GB of RAM or more.
And again, 64-bit Windows platform does not imply that applications themselves are 64-bit. The majority case is still the opposite.
My point was that 32-bit Windows, the operating system, is rare. Even typical non-gamer systems now have 4+ GiB of RAM and it is fair to expect a 64-bit OS on it. Provided that 64-bit Windows is largely dominant, why would we target 32-bit by default? Ok, Windows applications are mainly 32-bit, and some probably have valid reasons for that. But the OS and hardware are 64-bit native and we should make use of that by default. If a developer wants to target his application for 32-bit he should explicitly opt out.