Rascal 导入模块速度慢

Rascal slow at importing modules

我是来自 REPL 的 运行ning Rascal,导入某些模块似乎需要很长时间。例如 import lang::java::\syntax::Java15; 需要几秒钟才能达到 运行。

我还注意到依赖于其他模块的模块在更改后似乎不会重新加载的情况。例如:

程序 1:

module A::A
....

节目 2:

module B::B
import A::A;
...

回复:

import A::A;
import B::B;

现在我对 A 和 B 做了一些更改,然后再次导入 B。我想象对 A 的更改会传播到 B 的新版本(因为它正在导入 A),但这似乎没有发生。

  1. 为什么导入这么慢,有没有办法加快速度?
  2. 如何在 REPL 中导入具有依赖项的包?

谢谢!

我们最近对这部分实现做了很多更改。那么您能告诉我们您使用的是哪个版本吗?

据我所知,目前导入速度很慢,因为我们在解析基础结构方面存在瓶颈。加快速度;您可以在调试模式下不使用控制台(即使用 运行 As...),为 Eclipse 使用更多内存也有帮助(我使用 1.8Gb 堆和 80mb 堆栈)。

REPL 在 Eclipse 中通过监视自 运行 REPL 上的上一个命令以来哪些模块发生了变化来工作。当输入一个新命令时,例如导入命令,首先清除所有已更改的模块及其依赖的模块,这会产生一个用于重新加载的初始工作列表,然后以定点方式执行以加载新模块(每个模块只有一次),然后最后执行命令。