首个 GCC 16 正式版发布:默认开启 C++20,支持英特尔 Nova Lake 与 AMD Zen 6


IT之家 5 月 3 日消息,作为 GNU 编译器套件(GCC)16 系列的首个稳定版,GCC 16.1 已于当地时间 4 月 30 日正式发布,标志着该编译器进入了全新的里程碑。

本次更新最显著的变化是 C++ 前端默认语言标准从原来的 GNU C++17 切换为 GNU C++20,这意味着开发者在不手动指定标准的情况下,将默认使用 C++20 规范。此外,GCC 16 现已将 C++20 运行库(libstdc++)相关组件标记为非实验性,整体稳定性大幅提升。

在 C++ 语言特性方面,GCC 16.1 引入了对多项 C++26 功能的实验性支持。在底层性能与矢量化(Vectorizer)方面,GCC 16 展现了更强的灵活性。

本次发布还新增了一个实验性的 Algol 68 编译器前端 ga68。根据 GCC 项目组的说明,该前端旨在实现《修订报告》(Revised Report)中所描述的 Algol 68 语言,包括经 IFIP WG2.1 下属 Algol 68 支持小组批准的勘误内容,同时实现了部分 GNU 扩展和一套 POSIX 预定义环境。

编译器诊断功能迎来多项改进。GCC 16.1 现已支持以实验性 HTML 格式输出诊断信息,SARIF 输出中新增了控制流信息。旧版的 JSON 诊断格式已被移除,官方推荐需要机器可读诊断输出的用户改用 SARIF 格式。

在硬件支持方面,x86 架构新增了针对 AMD Zen6 的支持,同时加入了 Intel Wildcat Lake 和 Nova Lake 的编译选项。

对于 x86-64 平台,新版本在开启 AVX512 支持时,会自动尝试使用掩码矢量余弦(Epilog)来优化代码大小与性能。而在 GPU 卸载计算方面,OpenMP 与 OpenACC 针对 AMD Instinct MI300 等设备的启动开销也得到了大幅缩减。

另外,GCC 16.1 还为龙芯 LoongArch 架构新增了函数多版本技术(Function Multi-Versioning)支持,可通过 target_clones 属性为不同 CPU 特性(IT之家注:如 LSX、LASX)生成多个函数版本,并在运行时自动选择最优版本。

]article_adlist–>

            <!-- 非定向300*250按钮    17/09  wenjing  begin -->
            <!-- 非定向300*250按钮  end -->
        </div>



Source link

未经允许不得转载:紫竹林-程序员中文网 » 首个 GCC 16 正式版发布:默认开启 C++20,支持英特尔 Nova Lake 与 AMD Zen 6
关于我们 免责申明 意见反馈 隐私政策
程序员中文网:公益在线网站,帮助学习者快速成长!
关注微信 技术交流
推荐文章
每天精选资源文章推送
推荐文章
随时随地碎片化学习
推荐文章
发现有趣的