开源意识流

观点与事件:科技、开源、商业化

GCC Rust准备合并到上游


By Forsaken

GCC Rust 社区最近向上游提交了第 4 版补丁集,目前来看这个版本很有可能被上游接受。

GCC Rust 是在 GCC 上实现的 Rust 前端,在历史上至少有三次在 GCC 上实现 Rust 的尝试,分别代表了三种流派:

1、原生 Rust 编译器(rustc)提供了自己的 IR(称为MIR),把 MIR 转成 GCC 的 IR,也就是 GENERIC,就能实现 Rust 前端。这也是三种流派中最容易实现的方式。缺陷是必须依赖 rustc,也就是说,当你编译 GCC 的时候必须依赖全套 Rust 工具链以及 LLVM 全家桶;

2、利用 GCC 的 JIT 接口,也就是让 rustc 去支持 libgccjit。这是非常完美的一种方式,但是这相当于指望 rustc 社区主动支持并维护 GCC 的部分。换句话说,你想在 GCC 上支持 Rust,然而开发和维护工作由 rustc 社区来承担,做梦呢!

3、在 GCC 上直接实现 Rust 前端,这是最靠谱的方式,也是工程量最大的方式,这需要一帮奋不顾身的人直接投入进去。幸好,这帮人几年前出现了,并且也把社区做起来了。这必须感谢其主力维护者 Philip Herrons 用爱发电全职投入,在其他核心开发者难以保证贡献量的时候扛了下来,后来他获得了 Grsecurity CEO 的支持和资助,这是后话。BTW,Grsecurity 是目前世界第一的 Linux 内核安全防护体系,亚洲范围内仅有我国的 HardenedVault 紧随其后。

之前 GCC 委员会已经同意合并,就看什么时候 review 通过,目前看来已经十分接近最终的目标了。

不过,GCC Rust 目前尚无法投入实用,甚至连其基本目标,能基本编译 Rust-1.49 的程序都还做不到。毕竟目前为止,也只是奋力把架子搭好而已。

道阻且长,行则将至。