无法确定操作系统

blu*_*one 16 smlnj

当我进入终端(我安装了smlnj)并且我键入sml它时给了我错误sml: unable to determine architecture/operating system.这是什么意思???我在这个网站上安装了这样的sml ,但我不确定 - 说明错了吗?
在此输入图像描述

fek*_*eka 18

最近的OS X二进制安装程序的问题仍然存在,只是焦点转移到10.9 Mavericks和10.10 Yosemite版本的OS X.虽然根本原因在最近的源代码版本中得到了解决.

这就是为什么从一段时间以来解决这个问题只是为了拥有一个新编译的二进制包.为此你可能会更好地安装smlnj homebrew.您可以使用以下命令执行此操作:

brew update
brew install smlnj
Run Code Online (Sandbox Code Playgroud)

这将为您编译包,这样您就可以省去检查源代码并自行编译的麻烦.

只是为了清理系统并避免重复,您只需执行以下操作即可删除以前的安装:

sudo rm -rf /usr/local/smlnj*
Run Code Online (Sandbox Code Playgroud)

对于星号:我有一个裸的smlnj文件夹,里面有110.76和一个smlnj-110.75文件夹,我想我之前试过安装两个不同的版本......

您可能需要删除自己创建的任何软链接,这些链接指向上一步中直接位于/ usr/local/removed下的旧smlnj文件夹.


pax*_*blo 15

如果您使用的是OSX 10.8或更高版本(uname -r以12或更高的速度开头),SML/NJ pre 110.75在没有额外调整的情况下效果不佳.这是一个已知的问题,可以通过在以下位置添加10.8选项(参见12下面的行)来修复操作系统检测代码.arch-n-opsys:

    :
    10*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.6
    11*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.7
    12*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.8
    13*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.9 Mavericks
    14*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.10 Yosemite
    15*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.11 El Capitan
    16*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.12 Sierra
    17*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.13 High Sierra

    *)   exit 1;;
esac;;
Run Code Online (Sandbox Code Playgroud)

  • 具体来说,您需要将其添加到`/ usr/local/smlnj/bin/.arch-n-opsys`.(在这里提到它是因为链接断了,问题仍然存在于110.79和10.11 El Capitan ......) (6认同)

the*_*jov 5

作为paxdiablo答案的更新,如果你正在运行macOS Sierra(版本10.12),你需要输入以下行来运行sml:

16*) OPSYS=darwin;  HEAP_OPSYS=darwin ;; # macOS 10.12 Sierra
Run Code Online (Sandbox Code Playgroud)

所以有了更多的上下文,它将如下所示:

      11*) OPSYS=darwin;  HEAP_OPSYS=darwin ;; # MacOS X 10.7 Lion
      12*) OPSYS=darwin;  HEAP_OPSYS=darwin ;; # MacOS X 10.8 Mountain Lion
      13*) OPSYS=darwin;  HEAP_OPSYS=darwin ;; # MacOS X 10.9 Mavericks
      14*) OPSYS=darwin;  HEAP_OPSYS=darwin ;; # MacOS X 10.10 Yosemite
      15*) OPSYS=darwin;  HEAP_OPSYS=darwin ;; # MacOS X 10.11 El Capitan
      16*) OPSYS=darwin;  HEAP_OPSYS=darwin ;; # macOS 10.12 Sierra
      17*) OPSYS=darwin;  HEAP_OPSYS=darwin ;; # macOS 10.13 High Sierra
      *) exit 1;;
    esac;;
Run Code Online (Sandbox Code Playgroud)

SML/NJ版本110.79配置了OS X到El Capitan,但Sierra仍然缺失.