正在安装 SML/NJ 库

Installing SML/NJ library

我需要为 ML 安装 QCheck/SML 单元测试库。

我可以 git 克隆代码,并创建 .cm 文件,但我不确定如何将生成的文件复制到哪里。该文件只是说 (http://contrapunctus.net/league/haques/qcheck/qcheck_2.html):

2.1 SML/NJ

For Standard ML of New Jersey, the CM library specification ‘qcheck.cm’ should be all you need. The default target of make -f Makefile.nj will ask CM to build and stabilize this library. This creates a file ‘.cm/x86-unix/qcheck.cm’ (alter the arch/os tag as needed) which may be copied into the standard CM library path and added to the ‘pathconfig’.

我在 Mac 中使用 brew install smlnj 进行 ML 安装,所以我在 /usr/local/Cellar/smlnj/100.78/SMLNJ_HOME 中安装了 SMLNJ_HOME

这里面的CM路径库是什么?一般来说,如何将库安装到SML/NJ?

编辑

根据 Matt 的回答,这就是我的工作方式。

设置

  1. 将整个 qcheck 目录复制到 /usr/local/Cellar/smlnj/110.78/SMLNJ_HOME/lib.
  2. 创建 ~/.smlnj-pathconfig 文件。
  3. 在文件中添加qcheck.cm /usr/local/Cellar/smlnj/110.78/SMLNJ_HOME/lib/qcheck

用法(在 REPL 中)

  1. CM.make "$/qcheck.cm";
  2. 打开QCheck;

需要考虑的事项。

  1. 我无法使用稳定库 (qcheck/.cm/x86-unix/qcheck.cm)。所以,我不得不复制整个目录。
  2. 对于用户的库,我认为安装位置可以是任何地方,因为~/.smlnj-pathconfig可以指向目录。
  3. 要在同一目录中导入结构,需要 use "FILENAME"; 而不是 CM.make

CM 库路径位于SMLNJ_HOME/lib。您可以将 .cm 文件放在这里。说明说要修改 pathconfig 文件,但是,我建议改为在您的主目录中创建一个 .smlnj-pathconfig 文件。然后将以下行粘贴到该文件中:

qcheck.cm <path to directory containing qcheck.cm file>

然后您可以使用锚点名称在您的 .cm 文件之一中引用它:$/qcheck.cm。我以前没有使用过稳定的库,生成的 .cm 文件给我一堆错误。如果您改为使用 qcheck 存储库根目录中的 qcheck.cm 文件,它似乎对我有用。也许其他人可以评论我为什么会收到这些错误。