2016-01-15 5 views
2

Я использую самую последнюю версию SMLNJ (110.79) на ОС Windows 10.SML/NJ Библиотека Базис не работает в Windows 10

я не могу использовать какие-либо из функций библиотеки SML Basis.

Вот пример я попытался с List.filter

fun isOdd nmbr = (nmbr mod 2) = 1; 
List.filter isOdd [1,2,3,4,5]; 

Это производит следующую ошибку

неожиданное исключение (ошибка?) В SML/NJ: Ио [Io: шторами потерпел неудачу на «C : \ cygwin \ home \ larsberg \ smlnj2 \ sml.boot.x86-win32 \ smlnj \ basis.cm \ x86-win32 \ basis.cm ", win32-bin-prim-io: checkHndl: openRd: failed] поднят на : Основы/Реализация/IO/bin-io-fn.sml: 617.25-617.71 ../cm/util/safeio.sml:30.11 ../compiler/TopLevel/interact/evalloop.sml:44.55

Другие функции в библиотеке Базис производит такую ​​же ошибку, как Real.fromInt

комментарии к this answer точке с аналогичной проблемой, но я «Не знаю, как это сделать.

Я пропустил что-то простое? Благодаря!

EDIT:

После удаления и повторной установки несколько раз, это кажется работает. Я оставляю этот вопрос открытым на данный момент, так как я не знаю, что у него на самом деле работает ..

List.filter; дал этот выход

[autoloading] 
[library $SMLNJ-BASIS/basis.cm is stable] 
[library $SMLNJ-BASIS/(basis.cm):basis-common.cm is stable] 
[autoloading done] 
val it = fn : ('a -> bool) -> 'a list -> 'a list 
+0

Ваш вопрос действительно должен быть о том, что SML/NJ не работает должным образом в Windows. В частности, это очень мало связано с List.filter, как вы сами говорите. –

+0

Вы правы, я немного задал вопрос –

+1

Возможно, вы можете попробовать использовать установщик Windows напрямую, а не проходить через Cygwin (если это не вызовет слишком много проблем с вашей базой кода). Это может быть скорее проблема Cygwin против Windows 10, а не проблема SML/NJ против Windows 10. –

ответ

2

Это происходит, когда установлен каталог перемещен или SMLNJ домашняя среда не установлена. В основном sml не может найти файл basis.cm, который должен присутствовать в подкаталоге $ SMLNJ_HOME. Таким образом, установив путь установки в $ SMLNJ_HOME решил проблему для меня.

$SMLNJ_HOME=~/ws/CSCI-5161/sml 
0

Я нахожусь в Windows 7, но получил ту же ошибку. Установщик Windows поместил программу в Program Files (x86)/SMLNJ. Я переместил папку SMLNJ в Program Files /, и теперь я больше не получаю ошибку.

 Смежные вопросы

  • Нет связанных вопросов^_^