Формат исключения SML

Я использую Linux Mint 17, и недавно я установил smlnj (стандартный ML в Нью-Джерси) и sml-режим для Emacs с помощью apt-get.

Когда я пытаюсь увеличить глубину печати с помощью команды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

Я гуглил, но ничего не нашел.. У кого-нибудь есть идея, что может означать эта ошибка и как ее исправить?

РЕДАКТИРОВАТЬ: Я также попробовал команду с маленьким р, как предложил Гергели, но это не имело никакого значения. Я все еще получаю тот же вывод:

- 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

Я также получаю ту же ошибку, если я печатаю open Control.Print; в REPL, как Гергели.

Я также пытался собрать smlnj из исходного кода, но Emacs не распознает его - когда я пытаюсь загрузить.sml-файл в REPL с помощью сочетания клавиш Emacs C-c C-lОн жалуется, что не может найти команду sml.

Спасибо, Шпела

2 ответа

Решение

Решаемые. Мне нужно было установить дополнительный пакет libsmlnj-smlnj который также доступен с apt-get. Это решило мою проблему.

Спасибо за помощь, Шпела.

У меня нет Linux Mint, но я пытаюсь открыть структуру Control.Print:

- open Control.Print;
opening Control.Print
  val printDepth : int ref
  val printLength : int ref
  val stringDepth : int ref
  val intinfDepth : int ref
  val printLoop : bool ref
  val signatures : int ref
  val printOpens : bool ref
  val out : {flush:unit -> unit, say:string -> unit} ref
  val linewidth : int ref
  val say : string -> unit
  val flush : unit -> unit

как вы можете заметить, искомая функция называется printDepthс небольшим р.

Я установил последнюю версию SML/NJ, версия 110.77. Прошло пять минут, я рекомендую собрать его из исходного кода:

http://smlnj.org/dist/working/110.77/NOTES/INSTALL

секция 1.

Другие вопросы по тегам