GCC4.8發布,完成向C++的遷移

來源:互聯網
上載者:User

GNU編譯器集合(GCC)的最新版本發布,這標誌著向C++的遷移已經完成。這一過程持續了多年,GCC團隊指出,為了有一個可維護的代碼基來吸引並留住新的項目成員,這種遷移是必要的。之所以選擇C++,部分原因是它是標準化的語言,而且
"支援更乾淨的代碼,更容易編寫並保證清晰的介面……儘管這並非靈丹妙藥,但相對於基於C的遺留代碼,的確是種改進”。對大部分開發人員來說,最終結果不過是,如果有興趣從原始碼構建GCC 4.8,則必須使用支援C++ 2003的編譯器。該版本設計得更為高效,更容易更新,普通使用者可以直接受益。

新的編譯器特性

首先介紹一下通用的編譯器改進,該版本“引入了一個新的通用最佳化層,既滿足了快速編譯和極佳調試體驗的需要,又保證了合理的運行時效能”。此外,4.8包含了用於探測記憶體錯誤的AddressSanitizer,以及支援插入指令檢查資料競爭的ThreadSanitizer。(ThreadSanitizer目前只能用於x86-64
GNU/Linux。)

值得注意的是,該版本還支援64位ARM(AArch64)和32位ARMv8等架構。

特定於語言的改進

完成了向C++的遷移,這並不是唯一值得讚賞的成績,編譯器在其他一些方面還有不少改進。GCC目前初步在多種架構上實現了針對GNU/Linux和Solaris等平台的Go 1.1支援。如果使用Fortran和C進行開發的話,也有一些更新值得研究一番。

C++使用者會看到如下對C++11支援的改進:

  • thread_local關鍵字
  • attribute文法
  • 對齊說明符(alignment specifier)
  • 繼承建構函式
  • forward_list滿足了能夠感知分配器(allocator-aware)的容器這一需求

與Clang 3.2相比,GCC 4.8對C++11的支援也非常不錯,而且都領先於最新的Visual
C++ Compiler November 2012 CTP。新增了編譯選項-std=c++1y,支援對下一個主要標準(預計大約在2017年)提出的特性進行實驗,這意味著應對未來C++變化的計劃已經開始。

C++運行時標準庫(libstdc++)對C++11有了更大的支援,改進了隨機數產生器(包括新的X86處理器上的硬體支援),並加入了新的隨機數分布。

查看英文原文:GCC
4.8 Completes Move to C++

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.