16 个版本

0.4.2 2024 年 2 月 19 日
0.4.1 2024 年 1 月 1 日
0.4.0 2023 年 12 月 30 日
0.3.91 2023 年 12 月 29 日
0.1.1 2023 年 8 月 29 日

#237编程语言

每月 50 次下载

MIT 许可证

1MB
44K SLoC

C 37K SLoC Rust 7K SLoC // 0.0% comments JavaScript 534 SLoC Scheme 61 SLoC

具有无懈可击的并发、自动内存管理、类型安全和严格错误处理的泛用高级编程语言。

Dust version of an example from The Rust Programming Language.

易于阅读和编写

尘具有简单、易于学习的语法。

output('Hello world!')

无懈可击的并发

编写多线程代码就像编写单线程代码一样容易。

async {
    output('Will this one print first?')
    output('Or will this one?')
    output('Who knows! Each "output" will run in its own thread!')
}

有用的错误

尘会告诉你代码出错的地方,并提出更改建议。

Example of syntax error output.

静态分析

在运行之前,您的代码总是经过安全验证。

Example of type error output.

调试

只需设置环境变量 DUST_LOG=info,尘就会在执行时告诉你代码正在做什么。如果您设置 DUST_LOG=trace,它将输出有关解析、抽象、验证、内存管理和运行时的详细日志。以下是一些来自简单 fizzbuzz 示例 的日志。

Example of debug output.

自动内存管理

得益于静态分析,尘确切地知道每个变量被使用多少次。这允许尘在变量不再被使用时立即释放内存,而不需要用户的任何帮助。

错误处理

在尘中,运行时错误不是问题。Result 类型表示可能失败的操作的输出。用户必须决定在出错时做什么。

match io:stdin() {
    Result::Ok(input) -> output("We read this input: " + input)
    Result::Error(message) -> output("We got this error: " + message)
}

安装和使用

有两种方式可以编译尘。 最好是克隆仓库并编译最新代码,否则程序可能不是 GitHub 上显示的版本。无论哪种方式,您都必须安装 rustupcmake 和 C 编译器。

从 git 仓库安装

git clone https://git.jeffa.io/jeff/dust
cd dust
cargo build --release

使用 cargo 安装

cargo install dust-lang

依赖项

~38–55MB
~1M SLoC