微軟發布了其實施STL(標準C ++庫)中的代碼

STL開源

CppCon 2019會議是 實現 微軟的重要公告, 好在她 公佈了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年版本提供的庫),但在標准定稿之前已實現的功能(工作文件和技術規範C ++標準委員會)除外。

WCBF02分支(仍在Microsoft內部)在二進制級別包含不兼容的更改,但在源代碼級別不包含(對於標準庫的更新,有必要重新編譯項目,而不僅僅是更改DLL)。 該分支包含許多改進和修復,將很快公開發布。

與某些被描述為免費的項目不同, Microsoft建議報告缺陷並為項目代碼做貢獻 (在這種情況下,有必要簽署CLA,以賦予Microsoft必要的權利來重新分配文稿,尤其是在項目許可證變更的情況下,LLVM面臨著幾年的困難。)

在不遠的將來, Microsoft應該將其內部測試套件添加到項目中。 內部升級的錯誤列表正在遷移到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ÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。