microsoft / STL

MSVC's implementation of the C++ Standard Library.
Other
9.87k stars 1.45k forks source link

Standard Library Header Units and Modules - tracking issue #1694

Open StephanTLavavej opened 3 years ago

StephanTLavavej commented 3 years ago

:page_facing_up: Documentation

:construction: Status

We've reported the following compiler bugs; this issue is for tracking the status of these compiler bugs and removing workarounds/adding test coverage as compiler fixes are released.

As /clr C++20 support is a work in progress, we are not yet testing Standard Library Header Units under /clr.

:x: Clang

:bug: EDG (IntelliSense Front-End)

:beetle: Active, UCRT

:lady_beetle: Active, C1XX (MSVC Front-End)

:grey_question: Possible Improvements (C1XX/MSBuild)

:hammer_and_wrench: Upcoming Improvements (C1XX)

:adhesive_bandage: Permanent Workarounds

:heart_eyes_cat: Fixed, Workaround Removed

:building_construction: Building Deduplicated Header Units

Here's the part of our Python-powered test harness that builds "deduplicated" header units by topologically sorting them:

https://github.com/microsoft/STL/blob/ef62d3fa0b8e4e2406b9bb74e916e1ca8a1df802/tests/std/tests/P1502R1_standard_library_header_units/custom_format.py#L56-L109

With a bit of work, this can be extracted into a standalone Python script. (With significantly more work, it could be converted into CMake.)

CodePagesNet commented 1 year ago

Great to see the note that std lib modules are ready for production use (as of VS2022 17.5, MSVC only). Does that mean that the statement shown here in the documentation about not using preview releases in production code, should be removed? https://learn.microsoft.com/en-us/cpp/cpp/tutorial-import-stl-named-module?view=msvc-170#prerequisites