gpt4 book ai didi

SML/NJ 不会在 Mac 上自动加载 Basis 库

转载 作者:行者123 更新时间:2023-12-03 23:55:25 26 4
gpt4 key购买 nike

当我尝试使用功能时 List.nth , sml shell 返回此错误消息:

- List.nth([1,2,3],0);
[autoloading]

unexpected exception (bug?) in SML/NJ: Io [Io: openIn failed on "/Users/jhr/Work/smlnj/osx-dist/smlnj.dst/sml.boot.x86-unix/smlnj/basis/.cm/x86-unix/basis.cm", No such file or directory]
raised at: Basis/Implementation/IO/bin-io-fn.sml:617.25-617.71
../cm/util/safeio.sml:30.11
../compiler/TopLevel/interact/evalloop.sml:42.54

如果我使用 nth,它会返回相同的错误消息没有 List.以及。
所以我可以猜测“自动加载”库存在问题。

但还有一些更奇怪的事情。
如果我使用另一个基础库函数 length ,它工作正常。像这样:
- length ([1,2,3]);
val it = 3 : int

但是如果我使用 List.length 呢? ?它会出错。像这样:
- List.length([1,2,3]);
[autoloading]

unexpected exception (bug?) in SML/NJ: Io [Io: openIn failed on "/Users/jhr/Work/smlnj/osx-dist/smlnj.dst/sml.boot.x86-unix/smlnj/basis/.cm/x86-unix/basis.cm", No such file or directory]
raised at: Basis/Implementation/IO/bin-io-fn.sml:617.25-617.71
../cm/util/safeio.sml:30.11
../compiler/TopLevel/interact/evalloop.sml:42.54

所以看起来“自动加载”的东西肯定有问题,但我不知道如何解决它。
请帮我找到问题并解决它!

笔记:
  • 我使用 Max OS X 10.13.3,以及 v110.81 的 SML/NJ 编译器
  • 路径中的“jhr”是之前的“用户名”。我改为'cadenzah'。这就是为什么该路径不存在的原因。 “用户”目录中有“cadenzah”目录。

  • 附:也许以前版本和这个(v110.81)之间的编译器本身的目录结构有问题?

    最佳答案

    您是如何在 Mac 上安装 SML/NJ 的?
    似乎编译器驻留在用户拥有的目录中;我建议您尝试通过 Homebrew 安装 SML/NJ 为 this blog post指示:

    $ ruby <(curl -fsSk https://raw.github.com/mxcl/homebrew/go)
    $ brew update
    $ brew install smlnj
    由于您不是在询问如何安装 SML/NJ,因此这不是以下问题的重复:
  • SML not detecting OS on OS X Mavericks
  • How do I install a working version of Standard ML on Mac?

  • 但也许你应该问那个问题而不是这个问题。 :)
    否则,尝试将当前用户名设置为 'Cadenzah' 而不是 'cadenzah',使其与您的用户目录的大小写相匹配。 Unix 文件系统往往区分大小写。即使 MacOS 不是,默认情况下,这可能会导致不遵守本地文件系统法律的软件中的一些冲突。

    关于SML/NJ 不会在 Mac 上自动加载 Basis 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355690/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com