1

OCAML コンパイラ (ver 4.01.0) と GNU make 4.0 を使用して unison ソースをコンパイルしようとしています。ソースコードはリンクから取得されます ( http://www.seas.upenn.edu/~bcpierce/unison//download/releases/unison-2.27.57/ )

tar.gz を抽出し、ユーザー マニュアル ( http://www.seas.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual .html ) 一からウィンドウを作成するセクションを参照してください。

コードは数秒間コンパイルを開始しますが、停止し、次のエラーが表示されます。

----------

File "/cygdrive/c/unison_build/unison-2.27.57/update.ml", line 1:
Error: The implementation /cygdrive/c/unison_build/unison-2.27.57/update.ml
does not match the interface update.cmi:
...
In module NameMap:
The field `split' is required but not provided
In module NameMap:
The field `choose' is required but not provided
In module NameMap:
The field `max_binding' is required but not provided
In module NameMap:
The field `min_binding' is required but not provided
In module NameMap:
The field `bindings' is required but not provided
In module NameMap:
The field `cardinal' is required but not provided
In module NameMap:
The field `partition' is required but not provided
In module NameMap:
The field `filter' is required but not provided
In module NameMap:
The field `exists' is required but not provided
In module NameMap:
The field `for_all' is required but not provided
In module NameMap:
The field `merge' is required but not provided
In module NameMap:
The field `singleton' is required but not provided
Makefile.OCaml:339: recipe for target 'update.cmo' failed
make: *** [update.cmo] Error 2

4

3 に答える 3

3

まったく同じエラーが発生し(ocaml 3.12で)、update.mli次のようにファイルにパッチを適用して解決しました(4行目):

-module NameMap : Map.S with type key = Name.t
+module NameMap : MyMap.S with type key = Name.t

これは既知のバグ (バグ #585453 ) であり、debian パッケージ(ファイル) からパッチを入手したことに注意してください0005-Fix-build-with-OCaml-3.12.patch。このパッチは、少なくとも 2.27.57 および 2.32.52 に対して有効です。同じパッケージに、Ocaml 4 のパッチも含まれているようです。

于 2015-12-30T00:13:19.290 に答える
1

Unison は OCaml 3.12 でコンパイルする必要があります。それ以降のコンパイラではコンパイルされません。Unison はもはや積極的に開発されていないことを Nate 氏は述べています。

Unison は、研究プロジェクトとして活発に開発されていません。現時点では、新機能の追加、バグの修正、質問への回答を担当する担当者はいません。

引用はサイトから。

于 2014-09-24T17:22:18.037 に答える
0

このエラーは、異なるバージョンの OCaml コンパイラを使用して update.ml をコンパイルした場合に発生する可能性があり、_build ディレクトリをクリアして最初からやり直します。

于 2014-09-22T09:32:56.373 に答える