6 ms·
MSVC seems to have the best funding model of the three major compilers. I estimate that has more to do with adoption velocity than head starts on implementation
by humanrebar 3y ago
MSVC seems to have the best funding model of the three major compilers. I estimate that has more to do with adoption velocity than head starts on implementation, especially given how long modules have been in progress.
- dagmx 3y agoMSVC is also the least expansive of the three compilers. It has a much smaller set of languages it supports (No C, ObjC etc for example), and a much lower focus on performance [1] That’s not a criticism necessarily , but just to add that I think they likely have a more agile code base as a result. [1] https://reddit.com/r/cpp/s/BOj34UtKvu https://reddit.com/r/cpp/s/BOj34UtKvu
- logicchains 3y agoPlus its stdlib is developed by STL, the most fittingly-named guy to be developing a C++ standard library.
- mgaunard 3y agoAs I said, the module system in C++20 is literally the Microsoft model. Clang had another model that was rejected, and most of the years in committee were actually about finding a compromise between Microsoft's and Clang's approach. In the end, Clang wasn't particularly happy about the end result either.
- humanrebar 3y agoIf it were literally the MSVC implementation, they would have been done threw years ago.
- mgaunard 3y agoThey were. Gaby has been making presentations at Cppcon about it since 2015. By 2019 it was mostly about teaching people how to use it.
- humanrebar 3y agoI'm positive there has been nontrivial work to support C++ modules going into MSVC, msbuild, VS, MS STL, etc., since 2019. And there is still plenty of work to do, for instance helping build systems know when they need to produce more than one IFC for a given module (right now build systems assume modular C++ code is ODR bug free).
- mgaunard 3y agoThat sounds like it's mostly integration and tooling.
- humanrebar 3y agoAlso bug fixes. And there are still major headaches around when names are provided both through textual inclusion and import statements. But integration and tooling is required for any major amount of adoption. IntelliSense has to work. Existing LSPs have to work.
- mgaunard 3y agoI personally do not use IDEs, completion or even off-the-shelf build systems. I believe that to be a common situation.
- mathstuf 3y agoClang modules were basically "let's try to automate precompiled headers". It lacks the isolation offered by proper modules. Even if they're not faster, the isolation is something I'm looking forward to.