GCC 15最新開發進展顯示,這款開源編譯器迎來了重大更新,包括首度內建COBOL編譯器、C23設為預設標準,並強化C++26的支援。這些改變不僅擴展了語言支援範圍,也影響現有程式碼的編譯行為,開發者需留意潛在的相容性變更。

COBOL的整合是GCC 15具代表性的更新。過去,GCC並未內建COBOL支援,開發者通常依賴GnuCOBOL等外部前端,而這次GCC直接納入gcobol,使COBOL成為官方支援的語言之一。開發團隊已將GCC中COBOL前端的程式碼庫更新為使用C++14標準,移除過時程式碼,並增加測試案例以提升穩定性。此外,GCC 15也允許gcobol在交叉編譯環境下進行建置。

C語言方面,GCC 15將C23設為預設標準,從原本的gnu17變更為gnu23。這代表使用預設設定進行編譯的C程式將自動遵循C23標準,帶來多項語法與語意調整,包括#embed預處理指令、新的標準巨集__STDC_VERSION__值、可重現與未排序(Reproducible/Unsequenced)屬性,以及經強化的內建函式。這些變更可能影響舊版程式碼,開發者需評估是否需要調整編譯選項或更新程式碼。

GCC 15也持續拓展對C++26的支援,近期的提交顯示,開發團隊已實作多項標準草案提案,包括pack indexing、= delete("reason")語法、constexpr placement new等。此外,C++模板錯誤診斷機制也有所改進,提供-Wtemplate-body選項來控制錯誤報告,行內組合語言(Inline Assembler)則允許使用constexpr生成的字串,提升語法彈性。這些新功能強化了C++26的可用性,讓開發者能夠更早適應未來標準的變化。

除了語言標準的更新,GCC 15 在架構支援方面也有顯著進展。在x86-64領域,開發團隊新增了Intel APX、AVX10.2、MOVRS等指令集的支援,這些技術有助於提升指令執行效率,特別是在數值運算與向量化計算方面。與此同時,GCC 15正式移除Xeon Phi(Knights Landing與Knights Mill)支援,英特爾舊一代輔助處理器退場。

並行運算與GPU應用開發者也將受益於GCC 15的更新,特別是在OpenMP的支援上,目前已經引入OpenMP 6.0的部分功能,如get_device_from_uid與omp_get_uid_from_device API,並強化了OpenMP target區域對Nvidia GPU的終端輸出處理。對於AMD GPU,新的異質運算機制提供更靈活的記憶體管理,使GCC在高效能計算領域更具競爭力。

熱門新聞

Advertisement