Microsoft는 표준 C ++ 라이브러리 인 STL 구현에서 코드를 출시했습니다.

STL 오픈 소스

CppCon 2019 컨퍼런스는 실현 Microsoft의 큰 발표, 그녀에게 잘 STL 라이브러리 소스 코드 출시 발표 시점에서 사용 가능한 Visual C ++에 포함 된 C ++ 표준 무료 라이선스, 특히 Apache 2.0에 따라 (꽤 관대 한).

LLVM / Clang C ++ 표준 라이브러리 인 libcxx는 이미이 라이선스를 사용하고 있습니다., 프로젝트 간의 코드 교환을 용이하게해야합니다. 이 라이브러리의 모든 소스 코드를 사용할 수 있으며 이미 Visual C ++로 컴파일 할 수 있지만 테스트는 아직 포함되지 않았습니다.

오픈 프로젝트는 GitHub에서 개발되고 풀 요청을받을 것으로 예상됩니다. 새로운 기능 및 패치를 제공하는 타사. 회원이 되려면 CLA 코드 이전 계약에 서명해야합니다.

MSVC 팀은 STL에서 GitHub 로의 마이그레이션이 Microsoft 고객이 개발 프로세스를 최신 상태로 유지하고 혁신을 실험하며 프로젝트 개발에 도움이 될 것이라고 믿습니다.

대신, 개발자는 다른 프로젝트에서 새로운 표준의 기본 구현을 사용할 수 있습니다.

예를 들어 LLVM 프로젝트 내에서 작동하는 libc ++ 라이브러리와 코드를 교환 할 수 있습니다. Microsoft는 STL과 libc ++는 병합되지 않으며 여전히 다른 라이브러리라고 강조합니다. 다른 구조와 플랫폼으로. 그러나 이제 라이선스에 대한 걱정없이 두 라이브러리의 새로운 기능에 대해 작업 할 수 있습니다.

이 표준 라이브러리 구현은 GCC 또는 Clang에서 제공하는 구현과 경쟁하기위한 것이 아닙니다. 예를 들어 Microsoft 프로젝트는 Microsoft 이외의 다른 플랫폼을 지원할 계획이 없습니다.

그러나 개발자는 표준을 준수하고 매우 빠른 고품질 구현을 목표로합니다.

Visual C ++ 버전 2015 및 2017에서 바이너리 호환성이 보장됩니다. (이 라이브러리는 2019 버전과 함께 제공되는 라이브러리입니다), 표준이 확정되기 전에 구현 된 기능 (작업 문서 및 기술 사양 The C ++ Standards Committee)을 제외하고는 예외입니다.

WCBF02 분기 (여전히 Microsoft 내부)에는 바이너리 수준에서 호환되지 않는 변경 사항이 포함되어 있지만 소스 수준에서는 포함되지 않습니다 (표준 라이브러리 업데이트의 경우 DLL을 변경하는 것이 아니라 프로젝트를 다시 컴파일해야 함). 이 분기에는 여러 개선 사항과 수정 사항이 포함되어 있으며 곧 공개 될 예정입니다.

무료로 설명되는 일부 프로젝트와 달리 Microsoft는 결함을보고하고 프로젝트 코드에 기여할 것을 권장합니다. (이 경우, 특히 프로젝트 라이선스가 변경되는 경우, LLVM이 수년 동안 겪었던 어려움), Microsoft에 기여 재배포에 필요한 권한을 부여하기 위해 CLA에 서명해야합니다.

가까운 미래에, 마이크로 소프트는 내부 테스트 스위트를 프로젝트에 추가해야한다. 내부적으로 에스컬레이션 된 버그 목록이 GitHub로 마이그레이션됩니다. 현재 MSBuild로 컴파일이 완료되었지만 CMake 로의 마이그레이션이 진행 중입니다. C ++ 20 기능이 구현되고 있습니다.

다른 Visual C ++ 구성 요소는 무료 라이선스로 사용할 수 없습니다. Microsoft는 표준 C ++ 라이브러리가 상당히 컴파일러 독립적이며 (예를 들어 표준 C 라이브러리와 반대) 다른 컴파일러 구성 요소에 비해 매우 빠르게 발전한다고 말함으로써이 선택을 정당화합니다.

STL 소스 코드는 이제 Github에서 사용 가능 관심있는 사람이 다운로드하거나 코드를 검토 할 수있는 곳입니다.

GitHub 저장소에는 제품에 대한 모든 소스 코드가 있습니다. 자세한 정보가 포함 된 새로운 CMake 및 README 빌드 시스템 라이브러리는 Apache 2.0 라이센스 (일부 바이너리 제외)에 따라 라이센스가 부여됩니다.

분명히 STL 만 사용하려는 개발자에게는 영향을주지 않습니다. Visual Studio IDE에서 사용할 수 있습니다. 그러나 STL 개발에 참여하려는 개발자는 GitHub 저장소를 사용하여 참여할 수 있습니다.

GitHub 로의 이동은 아직 진행 중이지만 이제 코드를 복제하고 빌드 할 수 있습니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.