2014-11-20 4 views
3

저는 Linux Mint 17을 사용하고 있습니다. 최근에 apt-get를 사용하여 smlnj (Standard ML of New Jersey)와 sml-mode를 설치했습니다.포맷 예외 SML

내가 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 

내가 봤하지만 아무것도 찾지 못했습니다 무엇이 오류가 수 의미와 그것을 고치는 방법?

편집 : Gergely가 제안한 것처럼 작은 p 명령을 시도했지만 아무런 차이가 없습니다. 게르 겔리가 그랬던 것처럼 나는 REPL에서 open Control.Print;를 입력하면

- 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 

내가 같은 오류가 발생합니다 : 나는 여전히 같은 출력을 얻을.

또한 소스에서 smlnj를 빌드하려고 시도했지만 이맥스가이 파일을 인식하지 못합니다. 이맥스 키보드 단축키 C-c C-l으로 REPL에 .sml 파일을로드하려고하면 sml 명령을 찾을 수 없다는 불만이 있습니다.

덕분에, 스펠라

+0

보통 smlnj의'lib' 디렉토리에 SNLNJ-LIB라는 디렉토리가 있습니다. 그게 전부입니까? 그렇지 않다면 적절한 패키지가 고장 났다고 생각합니다. – molbdnilo

+0

@molbdnilo 맞습니다. smlnj/lib에는 SMLNJ-LIB 디렉토리가 없습니다. 이것은 아마 받아 들여진 대답이어야합니다. 감사. – Spela

+0

우분투 컴퓨터에서 검사했고 그 부분은 "libsmlnj-smlnj"패키지에 있습니다. 아마도 민트에 설치되지 않았을까요? – molbdnilo

답변

2

가. apt-get과 함께 사용할 수있는 추가 패키지 libsmlnj-smlnj을 설치해야했습니다. 그것은 내 문제를 해결했다.

도움 주셔서 감사합니다, Špela.

0

나는 리눅스 민트을 가지고 있지만 구조 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이 설치되었습니다. 그것은 5 분했다, 나는 소스를 구축하는 것이 좋습니다 :

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

부분이 해결 1.