Microsoft has open sourced its implementation of the C++ Standard Library (STL), shifting the product source code to a natty new – surprise – GitHub repo under an Apache 2.0 license with LLVM exceptions.
Microsoft staffer Stephan T Lavavej, listed a number of reasons behind the move in a blog, including allowing customers to follow its development “as it happens”.
He also said that “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” and that “also want to contribute back to the C++ community by making it possible to take our implementations of major features.”
On the choice of license, he said this put it in line with the Clang/LLVM/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.”
Not that the two are merging – rather, he said, “if libc++’s maintainers are interested in taking feature implementations from MSVC’s STL (e.g. floating-point charconv), or in collaborating on the development of new features in both libraries simultaneously, we’ll be able to help without having to worry about licensing.”
While the code is already on GitHub, the team still has a number of to dos to cross off.
They are planning a CMake build system, but right now this is listed as “in progress” as is “Issues”. Tests and Continuous Integration are “coming soon” – the former because “We need to replace our current test harness, which extensively uses Microsoft-internal machinery.” The latter because, “We need tests first.”
The GitHub page also lists goals and non-goals. The former include conformance, performance, usability and compatibility.
Non-goals include “porting to other platforms as well as adding non-standard extensions and “implementing technical specifications.