2012-04-10 89 views
3

我一直在尋找一些關於如何讓標準ML在Windows上運行的很好的文檔。有沒有人有一個很好的指導呢?在Windows上運行標準ML

我試圖編譯SML/NJ Cygwin中,使用本指南:http://www.smlnj.org/install/index.html

$ config/install.sh 
config/install.sh: Using shell /bin/sh. 
config/install.sh: SML root is /usr/local/sml. 
config/install.sh: Installation directory is /usr/local/sml. 
config/install.sh: Installing version 110.74. 
config/install.sh: URL of source archive is http://smlnj.cs.uchicago.edu/dist/working/110.74/. 
config/install.sh: Script /usr/local/sml/bin/.arch-n-opsys reports ARCH=x86; OPSYS=win32; HEAP_SUFFIX=x86-win32. 
/usr/local/sml/config/unpack: The run-time tree already exists. 
config/install.sh: Compiling the run-time system. 
(nmake /Fmakefile.win32 MAKE="nmake /Fmakefile.win32" RUNTIME="run.x86-win32.exe" VERSION="v-x86-win32" CC="cl" CFLAGS="/Zi" CPP="cl /E /EP" TARGET=X86 DEFS=" /DHOST_X86 /DTARGET_X86 /DOPSYS_WIN32 /DVREGS /DINDIRECT_CFUNC /DDLOPEN" XOBJS="" XLIBS="" LD_LIBS="" XCLIBS="" run.x86-win32.exe) 
make: -c: Command not found 
mk.x86-win32:26: recipe for target `all' failed 
make: *** [all] Error 127 
config/install.sh: !!! Run-time system build failed for some reason. 

任何建議,將不勝感激。

+0

我遇到了同樣的問題(並最終結束了使用Windows msi)。我深入到代碼中,似乎安裝腳本不能識別Cygwin提供的有關操作系統的信息;即使在添加信息之後,它仍然不適用於我,因爲某些代碼是用32位程序集編寫的,而編譯器使用的是64位C庫。 – 2017-07-06 17:25:10

回答

4

Moscow ML(MosML)在Windows上開箱即用(不需要cygwin)。您可以下載zip文件或自解壓安裝程序。

該網站還包含一個相當不錯的文檔(適用於某些MosML特定部分)和其他好的參考鏈接。

關於你的問題,你引用的指南沒有提到在窗口上編譯sml/nj。只是通過使用cygwin不會使它成爲「linux」(cygwin有一些怪癖)。 源代碼包含一些notes關於如何在cygwin上安裝(和編譯)。請注意,如果您使用的是舊版本的sml/nj,那麼它不一定與cygwin兼容。

在側面說明。有一個MSI安裝程序的Windows,爲什麼不使用它?

+0

msi看起來像要走的路。 (儘管windows cmd提示有點可怕) – user833970 2012-04-11 19:37:35

1

如果你正在尋找一個快速和骯髒的實施,你可能想嘗試Cambridge ML。我們用它來在劍橋大學教授本科生ML。不是大規模開發的最佳選擇,但足以教授該語言的基礎知識。

2

在標準ML的悠久歷史中,它的最佳實現幾乎不爲人所知:Poly/ML

Github上的releases還包括Windows的MSI。

+0

當我使用(5.7 x64).msi時,我得到的只是一個破爛的PolyML.exe,它似乎是一個Windows repl應用程序或其他東西。編譯器和其他所有的東西在哪裏? – BitTickler 2017-09-21 14:42:41