项目将 tmux 完全从 C 语言移植到不安全的 Rust,代码量从约 67,000 行变为 81,000 行。
最初使用 C2Rust 转换得到可编译但难以维护的代码,后改为完全手动翻译。
构建流程从 autotools + cargo 混合构建,优化为使用 cargo + cc crate 编译 C 代码。
移植过程中遇到多种错误,例如缺少 C 函数原型导致指针截断、结构体字段类型不匹配导致崩溃等。
在 Rust 中使用原始指针模拟 C 指针,用带标签的循环和块替代 goto,并实现侵入式红黑树和链表宏。
将 yacc 解析器重写为 lalrpop,实现一对一语法映射,最终消除所有 C 代码。
开发过程中借助 Vim 宏提速机械转换,尝试 AI 辅助但仅限缓解重复操作。
当前代码已达 100%(不安全)Rust,正式发布 0.0.1 版本,下一步目标是迁移到安全 Rust。
Get notified when new stories are published for "🇨🇳 Hacker News 简体中文"