黄金道钉:复活 Valen 编程语言,打通 Rust 互操作的最后一道难关
作者 Evan 宣布重启自己的 Vale/Valen 语言项目,目标不是造一个新语言,而是做一个“Rust++”式语言:编译器直接与 rustc 通过 rustc_driver 作为库联动,让 Valen 代码能以跨语言泛型、线性类型、group borrow checking、comptime 元编程等特性调用 Rust 生态,并支持 Rust 回调 Valen。 核心难点是 C ABI 没有泛型,无法直接跨语言使用 Rust 泛型函数;作者绕开 C ABI,让 Valen 编译器先懒生成对应的 Valen 签名,再用 Rust MIR 生成/反向调用,解决“Rust 泛型函数回调 Valen”这一层。 文中展示了 2024 年用 rustdoc 解析+scouting 程序+实例化 wrapper 的 C 方案及其限制,以及现在更深层的 rustc 库集成方案;列出当前能力边界(线性类型、group borrowing 跨边界 borrow check、zero-sized struct 跨边界、generational refs 暂时禁用)。 信息增量强,属于个人一手工程实验记录,带很多可读脚注与明确技术判断,适合读者深挖 Rust 互操作、编译器 IR 设计、泛型跨语言 FFI 的边界问题。