2017-04-25 11 views
1

ocaml 4.04.0의 사용자 정의 버전을 컴파일했습니다 (다른 사람이 작성한 버전). 나는 그것을 실행하고 rlwrap과 ledit을 사용하여 그것과 상호 작용할 수있다. 그러나 나는 오히려 그것을 utop과 함께 실행할 것이다. (나는 자동 완성이 필요 없으며, 명령 편집은 rlwrap이나 ledit보다 유토피아에서 더 좋다.) opam switch을 사용하여 설정 한 ocaml의 버전이 무엇이든간에 utop은 opam에 분명히 달려있다. 그러나, 나는 utop과 opam 사이의 관계에 관한 문서를 찾거나, opam에 의해 설정되지 않은 ocaml 버전을 utop에서 어떻게 실행할 수 있는지에 관한 문서를 찾는 데 어려움을 겪었습니다. man utop, opam --help 및 반복 된 웹 검색 결과가 없습니다. 그것은 나쁜 생각처럼 보이지만, 간단히 .opam/4.04.0/bin에있는 ocaml 파일을 사용자 정의 실행 파일로 바꾸려고 시도했지만, 실행 파일에 내장 된 추가 패키지를 사용할 수 없으므로, 달리고있다. 나는 인자로 사용자 정의 ocaml 파일을 사용하여 utop을 실행 해 보았습니다 : utop ./ocaml. 나는 유토피아 맨 페이지를 기반으로 이것이 가능할 것이라고 생각하지 않았습니다. 다음 단계는 유토피아 소스를 읽는 것 같지만, 오클랜드에 새로 온 사람으로서 나는 그 다이빙을하기를 꺼려합니다. 그렇게하지 않아도되는 것처럼 보입니다.utop을 로컬 ocaml 빌드와 함께 사용 하시겠습니까?

ocaml 실행 파일로 utop을 어떻게 실행할 수 있습니까?

답변

3

Utop은 opam에 의존하지 않습니다. utop은 OCaml의 컴파일러 라이브러리 위에 직접 만들어졌습니다. 따라서, 어쨌든 표준 ocaml 최상위를 실행하지 않습니다. 사용자 정의 버전의 OCaml에서 utop을 사용하려면 해당 사용자 정의 컴파일러 라이브러리를 사용하여 utop 버전을 빌드해야합니다.

가장 쉬운 방법은 opam-compiler-conf을 사용하여 자신 만의 opam 컴파일러 항목을 만든 다음 opam switch을 사용하여이 버전의 컴파일러로 전환하는 것입니다.

+2

감사의 octachron. 당신의 설명의 결과로, 나는 .opam 밑에 과거에 opam 전환 된 ocaml 버전마다 각각 다른 utop 실행 파일이 있음을 발견했다. 당신의 대답이 암시 하듯이 ocaml 판에 특유한 새로운 유토피아가 만들어지고 있습니다. 그것이 utop이 실행할 ocaml 버전을 아는 이유입니다 : utop의 각 버전은 "자체"ocaml 버전만을 알고 있습니다. – Mars