有 Rust 解释器吗?

Som*_*ive 6 computer-science interpreter compilation rust

我刚开始使用 Rust 并想知道:是 Rust 解释器吗?有了解释器,Rust 编译器就不需要在每次调用时都编译所有的源文件,而只会在代码发生变化时进行解释。这就是 JavaScript 和 Python 没有真正的编译时间的原因。

使用 Rust 进行增量编译,但大型项目仍然很慢。对于 Web IMO,使用 Rust 开发 GUI 将是一个福音。

小智 13

您可以使用evcxr。尝试Cargo install evcxr_repl。然后,在新终端中运行evcxr。然后,输入您的 Rust 代码进行评估。恐慌不会导致控制台使整个程序崩溃。简单地说,您会得到一个错误和解释,您可以重新输入最后出错的部分。当我想在我的项目中测试一些小东西时,我发现这很有用,而进行编译会很麻烦。例如,测试路径连接如何工作等。

  • 哇,这太棒了!非常适合按照教程进行操作 (3认同)

Luk*_*odt 7

,目前还没有 Rust 解释器可以简单地用作 编译的替代品rustc

miri一个 MIR 的解释器,Rust“中级中间表示”(基本上定义了一个控制流图)。Rust 编译器生成 MIR 代码作为其常用管道的一部分。接下来,该 MIR 代码通常会被翻译为 LLVM-IR,然后由 LLVM 将其翻译为机器代码。Miri 允许直接解释该 MIR 代码。

然而,Miri 并不是真正为程序员解释他们的项目而不是编译它而构建的。至少现在还没有。相反,它的构建主要是为了检查不安全代码是否存在未定义的行为:动态代码分析工具/清理程序。此外,美里的发展仍然受到很大限制。特别是,我上次检查时,extern "C"不支持通话。

我还想说,Rust 不像其他语言那样适合完全解释。Rust 编译器对源代码执行大量繁重的分析,这些分析必须在某个时刻以某种方式完成。


Ran*_*ano 5

我认为最接近您希望看到的是Rust 语言服务器。具体来说,IDE 使用它来仅提供更改,以便代码编译速度更快。

您可能还有兴趣观看/参与RLS 2.0 的工作。

就 UI / Web 而言,这是一个不同的蜡球,我还没有太多运气。

  • 您能解释一下为什么 RLS 应该类似于 Rust 解释器吗? (3认同)