主要观点:
- 作者近期活动减少,原因包括生活事件、工作责任增加和失去开源热情,同时正在进行一个占用大量时间的项目。
- 作者正在用纯 C 编写一个 Rust 编译器 Dozer,旨在实现从 C 开始引导 Rust 编译器,解决 Rust 编译器自身的引导问题。
- 介绍了引导构建项目,从简单的二进制种子逐步编译出复杂的系统,Rust 在其中出现较晚,作者希望有一个从 C 引导的 Rust 编译器。
- 作者正在为 Dozer 工作两个月,已完成词法分析器和部分解析器,计划逐步使其能编译基本的
libc
、libcore
和rustc
等,并创建cargo
等效物等。
关键信息:
- Rust 编译器
rustc
自身需用编译器编译,最初由 OCaml 编写,OCaml 编译器又由 Guile(Scheme 变体)编写,最终归结到 C 语言。 - Dozer 用纯 C 编写,目前已完成部分工作,计划逐步实现编译
libc
等并创建相关工具。 - 引导构建项目从 512 字节二进制种子逐步编译出 Linux 和 GCC 等。
重要细节:
- 作者提到
rustc
代码质量高,类似于 Linux 内核和 Quake III 源代码。 - Dozer 不使用 C++、
flex
、yacc
和Makefile
等,使用 QBE 作为后端。 - 作者计划编译
rustc
的Cranelift
后端,因不具备 C++,不能编译 LLVM。 - 要找出
rustc
中自动生成的源代码并去除,以符合引导项目规则。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。