25

是否可以在 OCaml 的utop中重新加载模块?

在使用 OCaml 代码时,我的开发工作流程是这样的:

首先,在 Vim 中打开一个文件example.ml并破解它。切换到另一个终端并运行utop. 从内部utop,使用指令加载代码#use "example.ml";;

回到 Vim 并在代码中进行一些更改。更改代码后,我想尝试新的更改。返回utop并重新运行指令#use "example.ml"

如果有一个 #reload指令可以重新加载所有以前加载的模块,那就太好了,但似乎没有。 有什么方法可以轻松地重新加载所有以前加载的模块?

理想情况下,这将类似于 GHCi 的:reload命令。

4

1 回答 1

1

在提出这个问题的时候,我相信dune还没有成为OCaml构建系统。使用沙丘,您可以通过执行以下操作简单地启动一个加载了本地定义库的 utop 实例(如此所述):

$ dune utop <dir> -- <args>

dune 将在哪个<dir>目录下(递归)搜索将要加载的所有库

于 2021-01-26T13:18:34.400 回答