【发布时间】:2015-01-18 09:14:07
【问题描述】:
我正在使用 Linux Mint 17,并且我最近使用 apt-get 为 Emacs 安装了 smlnj(标准 ML of New Jersey)和 sml-mode。
当我尝试使用命令增加打印深度时
Control.Print.PrintDepth := 100;我收到以下错误:
- Control.Print.PrintDepth := 100;
[autoloading]
[library $smlnj/compiler/current.cm is stable]
[library $smlnj/compiler/x86.cm is stable]
[library $smlnj/viscomp/core.cm is stable]
[library $smlnj/viscomp/basics.cm is stable]
[library $smlnj/viscomp/elabdata.cm is stable]
[library $smlnj/viscomp/elaborate.cm is stable]
[library $SMLNJ-BASIS/basis.cm is stable]
[library $smlnj/viscomp/debugprof.cm is stable]
Error: (stable) $smlnj/smlnj-lib/smlnj-lib.cm: unable to find $SMLNJ-LIB/Util/smlnj-lib.cm (/build/buildd/smlnj-110.76/sml.boot.x86-unix/SMLNJ-LIB/Util/smlnj-lib.cm)
unexpected exception (bug?) in SML/NJ: Format [Format]
raised at: ../cm/stable/stabilize.sml:257.15-257.21
../cm/stable/stabilize.sml:360.44
../compiler/TopLevel/interact/evalloop.sml:44.55
我用谷歌搜索了它,但没有找到任何东西.. 有谁知道这个错误可能意味着什么以及如何解决它?
编辑:我也按照 Gergely 的建议尝试了带有小 p 的命令,但没有任何区别。我仍然得到相同的输出:
- Control.Print.printDepth := 100;
[autoloading]
[library $smlnj/compiler/current.cm is stable]
...
[library $smlnj/viscomp/debugprof.cm is stable]
Error: (stable) $smlnj/smlnj-lib/smlnj-lib.cm: unable to find $SMLNJ-LIB/Util/smlnj-lib.cm (/build/buildd/smlnj-110.76/sml.boot.x86-unix/SMLNJ-LIB/Util/smlnj-lib.cm)
unexpected exception (bug?) in SML/NJ: Format [Format]
raised at: ../cm/stable/stabilize.sml:257.15-257.21
../cm/stable/stabilize.sml:360.44
../compiler/TopLevel/interact/evalloop.sml:44.55
如果我像 Gergely 那样在 REPL 中键入 open Control.Print;,也会遇到同样的错误。
我也尝试从源代码构建 smlnj,但 Emacs 无法识别它 - 当我尝试使用 Emacs 键盘快捷键 C-c C-l 将 .sml 文件加载到 REPL 时,它抱怨它找不到 sml 命令。
谢谢, 什佩拉
【问题讨论】:
-
在smlnj的
lib目录下通常有一个目录叫SNLNJ-LIB;它在那里吗?如果不是,我怀疑apt包坏了。 -
@molbdnilo 你是对的,在 smlnj/lib 中没有 SMLNJ-LIB 目录。这应该是公认的答案。谢谢。
-
我在 Ubuntu 机器上进行了检查,这些部件位于“libsmlnj-smlnj”包中。也许这没有在 Mint 上为您安装?