GCC 15 系列进展:C23 默认,改进的诊断,增量 LTO 和广泛的工具链升级
关键更新
GCC 15 发布系列(15.1 引入了主要的语言和工具链变化;15.2 是一个 bug 修复跟进)使 C 前端默认设置为 C23,并带来了广泛的实用改进:增量 LTO(减少小编辑的重建时间)、更丰富的诊断(彩色差异、SARIF 输出和新的 -fdiagnostics-add-output 选项)、更好的向量化和大文件编译性能、扩展的 OpenMP/GPU 卸载支持,以及持续的 C++ 标准采纳和 std::format / 模块工作——所有这些都旨在针对真实的构建和 CI 工作流,而不仅仅是纯学术特性。 (gcc.gnu.org)
为什么这很重要
如果您的工具链或 CI 镜像没有故意固定,切换到一个提供 GCC 15 的发行版可能会改变默认语义(C 现在目标为 C23),这可能会暴露微妙的兼容性破坏或改变未定义/实现特定代码的行为;如果您需要稳定性,请在构建中固定 -std=gnu17/gnu11(或明确目标 gnu23)。增量 LTO 和编译性能修复大幅减少了大型 C/C++ 代码库和 LTO 用户的编辑-编译周期,因此升级可以加快开发者迭代和 CI 成本。新的诊断和 SARIF 支持使机器可消费的错误报告在自动化(CI、SAST 管道)中变得实用,而无需脆弱的自定义解析器。OpenMP/GPU 卸载和改进的向量化是希望获得更好上游工具链支持的数值/HPC 团队的具体胜利,而不是脆弱的自定义工具链。简而言之:在 CI 中测试 GCC 15 的构建,更新您依赖于旧默认值的构建标志,并考虑升级 CI 镜像和发行版工具链,以便从更快的重建和更好的机器可读诊断中受益。 (gcc.gnu.org)
来源
继续阅读
Node.js v25 定于 2025‑10‑15 发布 — semver‑major 版本即将到来
2025年9月30日Node.js v25 定于 2025 年 10 月 15 日发布(提交截止日期 2025‑09‑15)。团队应针对新主要版本运行 CI,验证本地模块,并准备金丝雀部署。
Azure Functions Proxies:社区支持将于2025‑09‑30结束 — 立即迁移离开Proxies
2025年9月29日Azure宣布Azure Functions Proxies将在2025‑09‑30后不再支持;仍在使用Proxies的团队必须立即清点并迁移到受支持的API接口(APIM、Front Door或轻量级反向代理)。
NodeShield: 运行时 SBOM 强制执行 (CBOM) 以微不足道的开销限制 Node.js 的供应链攻击
2025年9月28日一篇新论文介绍了 NodeShield,这是一种运行时强制执行系统,使用扩展了每个依赖项能力的 SBOM(CBOM)来防止 Node.js 中的供应链滥用,效果约为 98%,开销小于 1 毫秒。