Microsoft has made its implementation of the Standard Library of C++ open-source on GitHub. The implementation becomes available under an Apache 2.0 license, with exceptions for LLVM.
Stephan Lavavej from Microsoft gave a number of reasons for the move to a company blog post. One of the reasons is that users can then follow the development of the C++ STL while it is in progress. “As C++ Standardization accelerates, with more large features being voted in every year, we believe that accepting major features as open source contributions will be important.”
With regard to the Apache 2.0 license, Lavavej stated that this choice follows the line of the Clang/LLVVM/libc+++ project. ” We chose this permissive open source license because having the same license as libc++ will make it easier to share code between our libraries.”
Lavavej goes on to say that users of MSVC’s STL should not be afraid of new obligations. ” Microsoft’s position is that the text of the Apache License v2.0 with LLVM Exceptions (specifically, the wording of the LLVM Exceptions) clearly states that when you compile your own source code using MSVC’s STL to produce object code or similar output (e.g. static libraries, dynamic libraries, and executables), you aren’t required to provide attribution when shipping your compiled products to your end users. This is another reason we’ve chosen this license: to avoid disrupting our customers’ businesses. “
Tasks for the future
Although the code is already on GitHub, the team still has a number of tasks to complete. A CMake build system is still under construction. At the moment, however, that task is listed under “Problems”. Tests and Continuous Integration are listed under “Coming Soon”. In addition, support libraries for Microsoft’s C++ STL may be added later on. The GitHub page also gives an overview of the objectives of the project. The first objectives include conformance, performance, usability and compatibility.