用 C 语言编写 Rust 编译器:Dozer 项目介绍 | Serpent OS Prelpha0 发布

用 C 语言编写 Rust 编译器:Dozer 项目介绍 | Serpent OS Prelpha0 发布用 C 语言编写 Rust 编译器 Dozer 项目介绍项目背景引导问题 编译器本身也是程序 需要其他编译器进行编译 这就产生了 先有鸡还是先有蛋 的问题

大家好,欢迎来到IT知识分享网。

用 C 语言编写 Rust 编译器:Dozer 项目介绍

项目背景

  • 引导问题: 编译器本身也是程序,需要其他编译器进行编译,这就产生了“先有鸡还是先有蛋”的问题。
  • 现有解决方案: Rust 使用之前的版本编译新版本,最初版本由 OCaml 编译器编译,OCaml 编译器可以使用 Guile 编译,Guile 解释器由 C 语言编写,C 语言编译器可以使用 TinyCC,TinyCC 本身由 C 语言编写并可以自举。
  • Bootstrappable Builds 项目: 该项目致力于从最基础的 512 字节二进制种子开始,逐步构建出完整操作系统,最终可以编译 TinyCC、GCC 和 Linux 等。
  • Rust 在引导过程中的位置: 目前,Rust 在引导过程中出现较晚,使用 mrustc(一个用 C++ 编写的 Rust 实现)来编译 rustc 1.56 版本。

Dozer 项目目标

  • 解决问题: 在 C++ 被引入之前,无法在引导过程中使用 Rust。
  • 项目目标: 创建一个可以用 C 语言引导的 Rust 编译器 Dozer,并使其能够在没有其他工具的情况下,从 TinyCC 引导。

项目计划

  1. 逐步完善 Dozer: 使其能够编译使用 libc 的简单示例,然后是 libcore,最后是 rustc(使用 Cranelift 后端)。
  2. 创建 cargo 等效工具: 可以使用 Dozer 编译 Rust 包。
  3. 移除自动生成的代码: 根据 Bootstrappable 项目的规则,不允许使用自动生成的代码。
  4. 创建编译流程: 用于编译 rustc 和 cargo,然后使用编译后的版本重新编译规范版本的 rustc 和 cargo。

项目进展

  • 目前已完成词法分析器和大部分语法分析器。
  • 宏/模块扩展、类型检查和代码生成等功能仍在开发中。
  • 可以成功编译以下代码:
fn rust_main() -> i32 { (2 - 1) * 6 + 3 }

项目意义

  • 为在引导过程中更早地使用 Rust 提供可能性。
  • 推动 Rust 在底层系统开发中的应用。

来源:

  • https://notgull.net/announcing-dozer/

该项目源代码托管在 Codeberg,感兴趣的用户可以通过 cb 模块进行相关操作:

# 使用 Duckduckgo 搜索 notgull/blog 在 codeberg.org 的相关信息 x cb : notgull/blog
用 C 语言编写 Rust 编译器:Dozer 项目介绍 | Serpent OS Prelpha0 发布

选定相关栏目后进一步操作:

用 C 语言编写 Rust 编译器:Dozer 项目介绍 | Serpent OS Prelpha0 发布

查看选定栏目的相关信息:

用 C 语言编写 Rust 编译器:Dozer 项目介绍 | Serpent OS Prelpha0 发布

如需进一步了解项目内容,可以将项目克隆到本地:

# x cb cl <owner>/<repo> x cb cl notgull/blog
用 C 语言编写 Rust 编译器:Dozer 项目介绍 | Serpent OS Prelpha0 发布

进一步探索:

  • https://cn.x-cmd.com/mod/cb

Serpent OS 发布首个预览版 Prealpha0

Serpent OS 来啦!这个全新的 Linux 发行版主打自动维护极致速度 。它采用 Rust 构建的 moss 包管理器,支持原子更新和回滚,告别系统崩溃的烦恼!还有超快的 boulder 打包工具,让开发者轻松创建软件包。

在 8月初,Serpent OS 发布了首个技术预览版 Prealpha0,可以使用 UEFI 和 OpenGL 加速的裸机和虚拟机上安装。

主要特点:

  • 基于 moss 包管理器,支持原子更新和离线回滚。
  • 使用 blsforme 自动管理 ESP 和 XBOOTLDR 分区。
  • 包含 CLI 安装程序,需要手动分区。
  • 预装了 GNOME 桌面环境、Firefox 浏览器和终端。

注意事项:

  • 此版本非常粗糙,不建议日常使用。
  • 需要联网安装。
  • 软件包数量有限,建议使用 Flatpak 或贡献软件包配方。

未来计划:

  • 继续迭代 ISO,改进安装程序。
  • 下个版本将支持安装 Cosmic 桌面环境。

想体验未来操作系统?快来试试 Serpent OS 吧! https://serpentos.com/

来源:
https://serpentos.com/blog/2024/08/01/serpent-os-prealpha0-released/

更多内容请查阅 : x-cmd blog (daily) | [] 用 C 语言编写 Rust 编译器:Dozer 项目介绍 | Serpent OS Prelpha0 发布

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/93738.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信