3 个版本
0.5.5 | 2023年11月19日 |
---|---|
0.5.4 | 2023年11月19日 |
0.5.3 | 2023年11月19日 |
#478 在 编程语言
125KB
3K SLoC
qsc: QuickScript 编译器。
QuickScript 是我正在创建的一种语言,目的是学习如何创建语言。它的语法非常类似于 Rust,它是一个基于分号的编程语言,至少我是这么认为的。编译器是用 Rust 编写的,并将转换为汇编语言,然后使用 nasm 或 GNU as(可能是后者)编译,最后用 ld(我实际上可能会使用 mold)进行内部链接。标准库应该会很不错,但我还没有着手做。
许可证
本项目采用 MIT 许可证。您可以自由使用代码做任何您想做的事情。
安装
安装 QuickScript 非常简单!以下是安装方法
使用 Cargo
cargo install quickscript
通过 GitHub 发布版
- 访问 https://github.com/RedstoneWizard08/QuickScript/releases
- 下载您平台正确的二进制文件
- 运行
chmod +x [二进制文件路径]
- 运行二进制文件!
用法
有关用法详细信息,请运行 qsc --help
支持
目前,以下是支持矩阵
版本 | i686 | x86_64 | armv7l | armhf | arm64 |
---|---|---|---|---|---|
0.0.0 | 🔴 | 🔴 | 🔴 | 🔴 | 🟢 |
0.1.0 | 🔴 | 🟡 | 🔴 | 🔴 | 🟢 |
0.3.0 | 🟢 | 🟢 | 🔴 | 🔴 | 🟢 |
0.4.0 | 🟢 | 🟢 | 🔴 | 🔴 | 🟢 |
0.5.x | 🟢 | 🟢 | 🔴 | 🔴 | 🟢 |
注意,armv7l 和 armhf 的支持取决于 Cranelift 对其的支持。有关更多详细信息,请参阅 cranelift#1173。
i686 的 Musl 构建不支持,因为 cargo zigbuild 存在一个大问题。有关更多详细信息,请参阅 cargo-zigbuild#96。
致谢
非常感谢 Pixeled (@orosmatthew) 和他的 创建编译器 系列视频,因为它帮助我思考如何最好地完成这项工作,并为此项目提供了灵感。
非常感谢cranelift-jit-demo,因为它帮助我使用Cranelift实现了代码生成。
依赖项
~62MB
~1.5M SLoC