2017-04-25 3 views
1

ocaml 4.04.0のカスタムバージョンをコンパイルしました(誰かが書いたものです)。私はそれを実行し、rlwrapとleditを使ってそれと対話することができますが、私はむしろutopで実行します。 (私はオートコンプリートを必要としません;コマンド編集はrlwrapやleditよりutopでうまくいきます。)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のmanページに基づいてうまくいくとは思っていませんでした。次のステップは、utopのソースを読んでいるようですが、ocamlの新人として、私はそのダイビングを取ることに消極的であり、必要ではないようです。utopをローカルocamlビルドで使用しますか?

私は自分のocaml実行ファイルでutopを実行できますか?

答えて

3

utopはopamに依存しません。utopはOCamlのコンパイラライブラリの上に直接構築されています。したがって、とにかく標準のocamlトップレベルを実行しません。カスタムバージョンのOCamlでutopを使用する場合は、対応するカスタムコンパイラライブラリを使用してutopのバージョンをビルドする必要があります。

最も簡単な方法は、たとえばopam-compiler-confを使用して独自のopamコンパイラエントリを作成し、opam switchを使用してこのバージョンのコンパイラに切り替えることです。

+2

ありがとうオクタクロン。あなたの説明の結果、私は、oopamの下にoamamlのバージョンごとに異なる実行可能ファイルがあることに気付きました。これは過去にopamに切り替えられました。あなたの答えが暗示しているように、ocamlバージョンに特有の新しいユートンが作られています。これは、utopが実行するocamlのバージョンを知っている理由を説明しています。utopの各バージョンは、独自のocamlバージョンしか知りません。 – Mars

関連する問題