重写 Rust

主要观点:Rust 语言感觉像第一代产品,虽早期令人喜爱但现在仍有诸多不足,如语言进度放缓、一些特性未进入稳定版、共识过程难扩展等,作者甚至幻想fork 编译器来实现自己的想法。
关键信息:

  • 以 iPhone 为例说明第一代产品的特点,如第一代 iPhone 虽有创新但存在诸多不足,Rust 也有类似情况,如未实现 3G 网络、GPS 芯片和应用商店等。
  • Rust 语言发布后进展缓慢,不稳定特性众多但未进入稳定版,如协程特性 RFC 已 7 年仍未实现。
  • Rust 的共识过程难以扩展,如解决Mutex问题耗费大量时间和精力。
  • 提出对 Rust 的一些幻想修改,如函数特质(效果)、编译时能力、Pin 相关改进、Comptime 等。
    重要细节:
  • 函数特质方面,定义函数特质来描述函数的各种属性,如是否会 panic、是否有固定栈大小等,可用于更精确地控制代码,如 Linux 内核可利用此特性保证代码不会 panic。
  • 编译时能力方面,为标准库中的安全敏感函数添加标记特质,开发者需显式白名单才能调用,以降低供应链风险,如对文件系统和网络操作的函数。
  • Pin 相关问题,Pin 是为解决借用检查器的漏洞而引入的复杂机制,存在诸多不合理之处,如不是实际特质、仅适用于引用类型等,作者认为应利用借用检查器来处理结构体,引入Move特质等。
  • Comptime 方面,对比 Zig 的comptime,Rust 的宏语言存在问题,而 Zig 的comptime可在编译时运行部分代码,使代码更清晰美观,如 Zig 的stdprint函数。
  • 其他细节,如impl<T: Copy> for Range<T>的问题、派生关联类型的问题、if-let 表达式的问题、raw 指针操作的问题、集合类型的构造参数等。
阅读 14
0 条评论