【问题标题】:Installing SML/NJ library安装 SML/NJ 库
【发布时间】:2015-08-07 09:23:51
【问题描述】:

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

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

2.1 SML/新泽西州

对于新泽西州的标准 ML,CM 库规范“qcheck.cm”应该是您所需要的。 make -f 的默认目标 Makefile.nj 将要求 CM 建立和稳定这个库。这个 创建一个文件“.cm/x86-unix/qcheck.cm”(将arch/os标签更改为 需要),可以复制到标准 CM 库路径和 添加到“路径配置”中。

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

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

编辑

根据马特的回答,我就是这样做的。

设置

  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

【问题讨论】:

    标签: unit-testing sml ml


    【解决方案1】:

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

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

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

    【讨论】:

    • 你能详细说明后面的部分吗?我将整个 qcheck 目录复制到 SMLNJ_HOME/lib 中,并通过添加一行 (qcheck.cm qcheck.cm) 来修改 pathconfig,(当一切正常时,我将使用 .smlnj-pathconfig)。我试过“打开 QCheck;”在 REPL (sml) 中出现错误:错误:未绑定结构:QCheck.
    • 假设您复制到SMLNJ/HOME/lib 的目录名为qcheck,那么您应该在路径配置中放入的行是qcheck.cm qcheck。为了能够使用它,您需要在 repl 中输入CM.make "$/qcheck.cm"
    • 谢谢,我根据您的回答更新了它的工作方式。
    猜你喜欢
    • 1970-01-01
    • 2021-04-30
    • 2011-11-24
    • 1970-01-01
    • 2013-01-17
    • 2010-10-23
    • 2014-07-15
    • 2010-09-16
    • 2013-01-30
    相关资源
    最近更新 更多