Hasty Briefsbeta

双语

Introducing tmux-rs

10 months ago
  • #Rust
  • #C-to-Rust
  • #tmux
  • Collin Richards将tmux从C语言移植到Rust作为业余项目,目前已实现100% Rust代码的重要里程碑。
  • 最初采用C2Rust工具转换,但生成代码难以维护,最终转向人工重写。
  • 构建流程从链接Rust到C二进制文件,演变为使用`cc` crate构建包含C库的Rust二进制文件。
  • 遇到若干有趣bug,包括类型不匹配和函数声明错误等问题。
  • 将原始指针、`goto`等C语言模式转换为Rust实现,过程中面临Rust安全机制的挑战。
  • 为红黑树、链表等数据结构重新实现了侵入式宏的Rust版本。
  • 用`lalrpop`替代Yacc解析器,从而彻底清除了残余的C代码。
  • 开发工具使用Vim配合自定义宏,并辅以Cursor等AI工具,但仍需人工审核。
  • 尽管当前存在稳定性问题,项目下一步计划向安全Rust代码过渡。