Hacker News 中文摘要

RSS订阅

EDG C++ 前端正式开源 -- EDG C++ front-end goes public

2026年9月30日,EDG的C++前端源代码公开,C++联盟(The C++ Alliance)成为其非营利归属。同样的引擎,同样的标准,由专业团队维护,并开放贡献。重点在于延续:这是管理者变更,而非路线改变。过去三十年,EDG前端作为业界唯一生产级源到源引擎,为C++编译提供支持。

正文

EDG 现已开源

2026 年 9 月 30 日,EDG 的 C++ 前端源码正式公开,C++ Alliance 成为其非营利归属。引擎、标准、专业维护和开放贡献全都保留。

重点是连续性。这只是管理方的变更,而非路线转变。

第一部分

EDG 的历史

三十年来,EDG 前端作为业内唯一的量产级源到源引擎,一直支撑着 C++ 编译。

即将推出

完整故事仍在撰写中

本部分将涵盖 EDG 的创立、背后人物、前端里程碑,以及基于它构建的编译器和工具。若有历史资料分享,可在站点仓库开 issue。

第二部分

9 月 30 日之后的 EDG

源码于 2026 年 9 月 30 日公开后,专业维护必须延续。EDG 需要一个新的归属,能同时做到三件事。

01

财务赞助

代表 EDG 接收并管理捐赠。

02

技术延续

维持 EDG 用户依赖的工程品质。

03

领域专长

来自内部的 C++ 编译器前端知识。

为何选择 The C++ Alliance

C++ Alliance 是一家非营利组织,拥有成熟的财务赞助基础设施、在职的 C++ 编译器工程师,并在 C++ 标准与 Boost 社区根基深厚。它现在成为 EDG 的非营利归属。

了解更多 C++ Alliance

  • 自 2024 年起担任 Boost C++ 库的财务赞助方
  • 拥有直接向 Clang 前端贡献代码的 LLVM 提交者
  • 发布过透明度报告

如何运作

三条轨道,同一代码库

EDG 现在像其他开源项目一样运作:任何人都能贡献,落地的成果对所有人公开。开发遵循三条轨道:用户社区贡献、持续维护,以及集体资助的特性。

轨道 1

社区贡献

EDG 用户以拉取请求提交缺陷修复和新特性。最初由资深 EDG 开发者担任评审,批准后合入代码库。

轨道 2

维护:始终开放

联盟的 EDG 开发者进行的缺陷修复和维护即时发布。

轨道 3

特性:集体资助

为支持社区,联盟将提供让大型特性由社区开发并资助的途径。组织可以出资而非派出开发者来支持大型特性开发。特性一旦获资,便同时向所有人发布。

同一代码库,面向所有人。 无论变更来自哪条轨道,都会同时落入同一个公开仓库,无人享有提前访问权。

谁监督该流程

财务赞助委员会(FSC)监督三条轨道的流程。委员会由 John Spicer 担任主席,并将纳入 EDG 用户社区的志愿者。

想对委员会人选发表意见?查看参与方式。

  • 由 John Spicer 担任主席
  • 包含 EDG 用户社区志愿者
  • 监督贡献的评审与合入
  • 制定维护和新特性的优先级

这意味着什么

什么改变了,什么没变

引擎、实现的标准,以及对接人保持不变。工作和资金的来源、代码的存放位置则发生了变化。

| 领域 | 授权模式 | 开源模式 | | --- | --- | --- | | 源代码 | 专有,依授权提供 | 公开,位于 github.com/edgcpp/compiler | | 资金 | 年度授权费 | 联盟开发由社区的可抵税贡献资助 | | 开发 | EDG 团队 | 由 C++ Alliance 聘用的 EDG 开发者,外加 EDG 用户社区的贡献 | | 对接人 | John Spicer | John Spicer,作为财务赞助委员会(FSC)主席 | | 锁定 | 不适用 | 无。可随时退出。 |

参与其中

后续步骤

源码现已公开。以下是现状及 EDG 用户的参与方式。

  1. John Spicer 主导了转型

    他现在可以为任何用户讲解交接细节。

  2. 你的意见塑造委员会

    欢迎用户对财务赞助委员会的组成及开发优先级提供反馈。委员会将包含 EDG 用户社区的志愿者。

  3. 贡献代码

    源码公开后,欢迎用户往 github.com/edgcpp/compiler 提交缺陷修复和新特性的拉取请求。查看贡献处理方式。

  4. 加入讨论

    使用 CppLang Slack 实时聊天。申请邀请,然后加入 #edgcpp 频道。

在 GitHub 上关注工作进展

EDG 的源码和开发已迁移至 github.com/edgcpp。关注该组织以追踪实时工作进展。

前往 github.com/edgcpp

评论

讨论气氛整体是兴奋与怀旧交织:多数人认为 EDG 的 C++ 前端开源是 C++ 社区的一件大事,少数人则从实际使用经验出发泼冷水,指出业界早已转向 Clang,而这次开源更像是公司收缩后的收尾而非战略投入。

认为这是 C++ 社区的重大事件

  • EDG 前端以正确性著称,连 Visual C++ 的 IntelliSense 都基于它,而不是自家的 msvc 前端;作者曾在一款 C++ 产品做 PM,工程师们虽没用它也对它评价很高(较多人) > 它在正确性上的声誉非常好,把它开源对 C++ 社区会是非常有益的事。(@vintagedave)
  • 它长期是 C++ 实现史上的重要影响者,唯一尝试实现过 C++98 export 关键字的实现,正是这段实现经验后来推动了 export 被弃用(较多人)

认为开源的真实背景是公司正在收缩

  • 公告里没提 EDG 公司本身正在停运,这很可能才是把前端开源的原因(较多人) > 公告里没说的是 EDG 这家公司正在收尾,这大概就是他们开源前端的原因。(@jabl)

认为代码骨子里仍是 C,而这反而是亮点

  • EDG 源码至今主要是 C,连 C++ 部分都还沿用 .c 文件名,完全不用 C++ 标准库,该用继承的地方仍在用 C 风格的 union 变体;好处是编译极快,前端十秒内编完,而 clang 要十分钟以上(作者自己声明这是不完全公平的比较)(较多人)
  • 注释写在函数定义之后、左大括号之前,看着别扭但流程更自然,还避免了重复函数名(少数人) > 先看到函数定义,再看到它做什么的解释,顺序更自然,也省得再重复一遍函数名。(@cyberax)

认为社区早已用脚投票转向 Clang

  • 有前从业者用 EDG 做静态分析,后来换 Clang 的部分原因就是用开源方案省钱;堆在 EDG 之上的代码本身很糟、技术债沉重,作为两种前端的用户他更愿意用 Clang 那套(少数人) > 两种前端都需要额外加很多工作才能满足我们的需求,但我个人更愿意碰 Clang 的前端。(@etyp)
  • 反方是老用户的正面回忆:二十年前做嵌入式编译器时用 EDG 前端,极少出现 bug 在他们的代码里而不是自己的代码里(少数人)

对公告本身写得像生成式文本不满

  • 有人直接问「这是什么」,也有人吐槽「三条轨道,一个代码库」这种句子一看就是大模型写的,认为既然发布的是重要东西,就该少点套话、多点人味(少数人)

有价值的补充

  • 许可证是 Apache-2.0 WITH LLVM-exception,与 LLVM 生态兼容,这一点在评论区被明确点出并附了 SPDX 链接。
  • Git 历史可追溯到 1990 年且按时间顺序延续,开源项目里保留这么长的真实历史相当罕见。
  • EDG 前端能模拟其他各家编译器(以及它们的各个版本)的行为、支持范围和可能报出的错误;不完美,但「相当能打」。
  • 1990 年代初 SGI 的 MIPS C/C++ 编译器就是 EDG 前端配自研 ucode 后端,集成进 CASEVision,当时 EDG 只有三个人。
  • 当年 SGI 把 Irix 编译器开源成 Open64 时,因为 EDG 不开源也用不了,只好拿一个魔改版 gcc 当前端;评论者猜测,如果当时能用上 EDG 这样真正为前端设计的组件,Open64 或许会比实际走得更远。