3 ms·
> Microsoft has unfortunately chosen to neglect C for a long time, its compilers dragging far behind the rest of the pack. Is this still true? MSVC is pretty g
by akdev1l 1y ago
> Microsoft has unfortunately chosen to neglect C for a long time, its compilers dragging far behind the rest of the pack.
Is this still true? MSVC is pretty good at compiling C++ nowadays
- chaosite 1y agoMSVC always focused on C++, and C was treated as an afterthought.
- pjmlp 1y agoThe irony is that Microsoft was the very last MS-DOS compiler vendor to support C++ in their C tooling with Microsoft C/C++ 7 in 1992, that changed with the release of Visual C++ in 1993.
- qsort 1y agoI think he's referring to C specifically, not C++. It's true that modern versions of MSVC are compliant (and they're also typically faster at implementing features than gcc and clang), but for the longest time there were subtle differences in their C library. To this day I don't think they support VLAs, which are technically standard C (At least until recently, I'm not sure about the latest versions, hopefully someone more knowledgeable can say more).
- akdev1l 1y agoI see. I kind of assumed improving the C++ compiler required improving the C parts as well. VLA situation seems complex: https://stackoverflow.com/questions/55696680/in-which-versions-of-the-c-standard-are-variable-length-arrays-not-part-of-the-l https://stackoverflow.com/questions/55696680/in-which-versio...
- DobarDabar 1y agoCompare performance, features or anything of Clang and MSVC and you'll see the differences.
- shakna 1y agoFor C (not C++), MSVC got C17 in 2020, apart from VLAs - which are never planned. No real roadmap for if/when it will get C23 - which is not just fully implemented in GCC, but the default used standard.
- pjmlp 1y agoThey are talking about C not C++, for Microsoft C was done, it was about time to move into C++. This was the official position in 2012, https://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/ https://herbsutter.com/2012/05/03/reader-qa-what-about-vc-an... However after the Microsoft reboot with Satya, there was a change of heart regarding C, back in 2020, with C11 and C17 being supported, https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/ https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-... And 2022 https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual-studio-2022-version-17-5-preview-2/ https://devblogs.microsoft.com/cppblog/c11-atomics-in-visual... However there is no official roadmap regarding C23 support, and now with the whole safety discussion going on and Secure Future Initiative, probably will never happen. Additionally clang is a blessed compiler at Microsoft, it is included on Visual Studio, so whatever MSVC doesn't support can be done in clang as alternative.
- HexDecOctBin 1y agoThey have added one feature (typeof) from C23, so maybe they will add the rest when they release C++26. Or maybe they won't. Microsoft is an expert in inflicting the cruelty of providing just enough hope.
- pjmlp 1y agoC++26? There are having issues with delivering C++23, since the whole change in security focus with Rust, Go, C#, Java first, C and C++ for existing codebases, and most likely one of the reasons Herb Sutter is no longer at Microsoft. https://developercommunity.visualstudio.com/t/Implement-C23-Standard-features-in-MSV/10777419 https://developercommunity.visualstudio.com/t/Implement-C23-... https://developercommunity.visualstudio.com/t/Implement-C26-Standard-features-in-MSV/10777423?q=C%2B%2B26 https://developercommunity.visualstudio.com/t/Implement-C26-... Security changes, https://azure.microsoft.com/en-us/blog/microsoft-azure-security-evolution-embrace-secure-multitenancy-confidential-compute-and-rust/ https://azure.microsoft.com/en-us/blog/microsoft-azure-secur... https://blogs.windows.com/windowsexperience/2024/11/19/windows-security-and-resiliency-protecting-your-business/ https://blogs.windows.com/windowsexperience/2024/11/19/windo...
- camel-cdr 1y agoMicrosoft took 30 years to implement a C89 compatible preprocessor: https://docs.microsoft.com/en-us/cpp/preprocessor/preprocessor-experimental-overview?view=msvc-170 https://docs.microsoft.com/en-us/cpp/preprocessor/preprocess...