On 4/1/2016 12:25 AM, degski wrote:
On 1 April 2016 at 06:47, Paul Mensonides
wrote: Why do they need support? Compiler != platform.
You're right, approaching it this way. vs2015 Update 2 is the only compiler that "needs" support, as it will compile code that runs on W7SP1, W8.1 and W10 (as they are the M$ supported OSes). In a world of open source and free (as in beer) compilers/OSes, this is not an issue, just upgrade to the latest and greatest.
C++ code should target the C++ Standard. Compilers should target the C++ Standard. C++ code should not have to target any compiler at all.
VC++ being the "de facto" compiler on the platform is a huge part of the
problem.
I don't really see what you intend to say here. Their platform, their compiler.
Their platform, yes, but only VC++ is their compiler. A compiler is just software running on some platform that produces executables compatible with another (possibly the same) platform. IOW, Windows is their platform, but the notion of "C++ compiler that runs on Windows or produces Windows executables" is not owned by Microsoft, nor should they be involved in it in any way (including not being "owner" of "the" C++ ABI on Windows) except maybe that of defining the executable file format (and even that is tenuous and could also be irrelevant with better QoL design in the Windows system). What all of the compilers that run on any platform (e.g. Windows: VC++, mingw, clang) should be doing is attempting to target the Standard, not copying each other's crap.
Boost doesn't have to support VC++ either, correct, but it does it's best to do so.
Unfortunately. Boost used to be a bastion of ingenuity and cutting edge practice. It is now mired in its own legacy of bending over backward (and forward) to support garbage.
Code should target the standard. Compilers should target the standard.
Any temporary workarounds for bugs or missing features should be exactly that: temporary.
AFAIK that's what M$ is working at. Windows pre-dates Linux by over 5 years, i.e. no gcc/clang whatever. Windows predates "The Standard", you are referring to, by 13 years. The bugs and missing features ARE temporary, their time-frame differs from yours, though.
Sure. What does that have to do with any other compiler? Microsoft owns Windows and owns VC++. It doesn't own clang, mingw, or any other C++ compiler that runs on Windows. Nor does it own C++. Microsoft does not get to decide what C++ is. The C++ standard committee decides that. Where VC++ is good or bad with respect to the conformance should be irrelevant to all other compilers. The standard each of them is measured against is not each other but, well, the Standard. That breeds competition rather than lock-in, and it is that competition that provides the motivation that ultimately yields improved time frames.
M$ suffers from legacy code like any other company. Being commmercial and supporting a huge user base, I can see that they don't re-write the OS in one go, i.e. they depend on the bad choices of the past.
So, "untouchable" code written in the past was compiled by a compiler in the past. Where did that compiler go? It is not like every software project depends on all of the trillions of lines of code previously written in every other project ever. -Paul