GCC 16

GCC 16

经过一年的发展 发表 发布一套免费编译器 GCC 16.1这是新版 GCC 16.x 分支的首个主要版本。根据…… 问题编号方案开发过程中使用的是 16.0 版本,在 GCC 16.1 发布前不久,已经 fork 出了一个分支。 GCC 17.0这将构成 GCC 17.1 下一个主要版本的基础。

主 变化:

  • C++ 语言的默认模式已切换为使用标准模式 C ++ 20 (GNU C++20 方言,-std=gnu++20)而不是之前提议的方案 C ++ 17标准库中的 C++20 实现已被宣布为稳定版。
  • 包含一个实验性前端。 ga68 用于编译 Algol 68 编程语言的程序。
  • 新增了以 HTML 格式输出诊断信息的功能。扩展了以 HTML 格式输出的诊断信息中包含的程序执行相关信息。 萨里夫基于 JSON(已停止支持“-fdiagnostics-format=json”)。
  • 链接时优化 (LTO) 功能已得到扩展。新增了“-flto-toplevel-asm-heuristics”选项,该选项允许使用启发式算法来改进包含汇编注入的代码的优化。推测性去虚拟化技术 (-fdevirtualize-speculatively) 不再局限于转换虚方法,还可以用于将任何间接函数调用(例如通过指针的调用)转换为直接调用。
  • 已实现对编译时迭代次数未知的循环的向量化支持。改进了处理循环提前退出(例如,通过 break 语句)的效率。
  • 添加了实验支持 许多 机会 最近批准的标准 C ++ 26例如,已实施以下措施:
    • 反射 (反射新增了“-reflection”选项,允许您在编译阶段监视和修改程序元素。新增运算符包括:^^ (open-std.org)“获取有关语法结构的元信息”[:…:]执行逆变换。std::meta 库用于转换和处理检查过程中获得的信息,并提供诸如使用常量进行计算等功能。
    • 合同编程 (合约该功能允许使用三个新运算符定义形式化接口规范:`pre`(前置条件)、`post`(后置条件)和 `contract_assert`(断言检查)。`pre` 运算符指定调用前必须满足的前置条件(输入验证);`post` 运算符指定执行后必须满足的条件(输出要求);`contract_assert` 运算符指定异常条件。此功能将在 GCC 16 中提供。
    • 操作员 ”模板用于在编译时以常规 for 循环的方式遍历参数包、元组对象和反射结果(元对象)等元素。执行“模板 for”时,循环体会针对每个元素展开,并且每次迭代都在单独的作用域中处理,其中循环遍历的序列元素在每次迭代中都是常量,并且可以参与常量表达式(constexpr)。在反射上下文中,“模板 for”可用于遍历类或枚举的属性。
    • std::simd 库,用于使用标准 C++ 类型系统,通过 AVX-512 和 NEON 等 SIMD 指令集并行化数据操作。
    • 库 std::inplace_vector、std::optional ,std::copyable_function、std::function_ref、std::indirect、std::polymorphic 和 std::owner_equal。
  • 实现了与 C++23 标准相关的特性,例如: 显式的 管理对象的生命周期和 支持 指定诊断信息的字符编码。
  • 扩大对标准的支持 C23 (opennet.ru)例如,已经实现了使用“counted_by”属性来检查指针使用是否正确的功能。
  • 继续 标准实施 OpenMP 5.0、5.1、5.2 和 6.0 (开放式多处理)定义了在具有共享内存和向量化单元(SIMD)的多核和混合(CPU+GPU/DSP)系统上应用并行编程方法的 API 和方法。 改进 并行编程规范的实现 OpenACC 3.0、3.3 和 3.4这些定义了将操作卸载到 GPU 和专用处理器(例如 NVIDIA PTX)的方法。
  • x86 后端现在支持基于 Zen6 微架构的 AMD 处理器(-march=znver6),以及 Intel Wildcat Lake(-march=wildcatlake)和 Nova Lake(-march=novalake)处理器。
  • AMD Radeon GPU (GCN) 代码生成后端现在支持 AMD Instinct MI300 (gfx942) 加速器。
  • 对于 RISC-V、ARM、S/390 和 LoongArch 架构,已实现对“_BitInt(N)”类型的支持,以定义具有指定位数的整数。

来源: linux.org.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster