3 个版本

0.5.5 2023年11月19日
0.5.4 2023年11月19日
0.5.3 2023年11月19日

#478编程语言

MIT 许可证

125KB
3K SLoC

qsc: QuickScript 编译器。

Crates.io Crates.io Downloads GitHub Downloads Build status

build

QuickScript 是我正在创建的一种语言,目的是学习如何创建语言。它的语法非常类似于 Rust,它是一个基于分号的编程语言,至少我是这么认为的。编译器是用 Rust 编写的,并将转换为汇编语言,然后使用 nasm 或 GNU as(可能是后者)编译,最后用 ld(我实际上可能会使用 mold)进行内部链接。标准库应该会很不错,但我还没有着手做。

许可证

本项目采用 MIT 许可证。您可以自由使用代码做任何您想做的事情。

安装

安装 QuickScript 非常简单!以下是安装方法

使用 Cargo

cargo install quickscript

通过 GitHub 发布版

  1. 访问 https://github.com/RedstoneWizard08/QuickScript/releases
  2. 下载您平台正确的二进制文件
  3. 运行 chmod +x [二进制文件路径]
  4. 运行二进制文件!

用法

有关用法详细信息,请运行 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