Hacker News new | ask | show | jobs
by puetzk 2472 days ago
> And they don't even ship the CRT with the compiler any more

Just in case you/any other reader didn't know: That's just because they don't consider the ucrt compiler-version-specific anymore, it's distribution (binaries and source) moved into the windows SDK, E.g. Windows Kits\10\Source\10.0.17763.0\ucrt. The vcruntime is still with MSVC.

But this source never included the STL.

2 comments

You are correct. I'm using an obsolete name for the library that contains the dang functions I want to debug :) I honestly don't understand the rationale for putting it in the Windows SDK. It's not like any other compiler is going to use it and you could just update it with VC patches if it changed. The underlying OS API is even less likely to change anyway (UCRT being the C99 lib) so tying it to the Windows SDK is puzzling.

I'll concede I'm probably missing some obvious gotcha.

But this source never included the STL.

You mean things like vector, map, etc. ? The source for those is already in the header files.

They mean the entire C++ standard library. There's plenty of non-header code in there.
The separately compiled parts of the C++ Standard Library have shipped in VS installations for many years (look for xrngdev.cpp in a subdirectory typically named crt/src, that should be distinctive enough). This was intended for debugging purposes, covered by the VS EULA as always. These parts weren’t standalone-buildable and we occasionally forgot to ship a file or two, but we always tried to make it all source-readable.

Now, being open source enables much more.