Dialyzer PLT の出力を別のアーキテクチャの別のマシンにコピーして使用できますか? たとえば、x86_64 Linux マシンで PLT ファイルを作成しました。x86 FreeBSD または Windows マシンでファイルを使用できますか?
3 に答える
DialyzerのPLTをコピーすることは可能ですが、両方のマシンのPLTに含まれるすべてのファイルに対して2つの前提条件が必要です。
- 同じ絶対パス:Dialyzerは、PLT内のすべてのファイルの絶対パスを保存します。したがって、各マシンで実際のファイルを見つけるには、それが同一である必要があります。
- 同じバージョン:含まれている.beamファイルごとに、PLTは関連するソースコードのMD5チェックサムを保存します(debug_infoが有効になっているため、ビームファイルに埋め込まれています)。1行しか変更されていない場合、MD5は異なり、Dialyzerはファイルが変更されたと見なし、PLTに保存されている情報を再計算します。
ダイアライザー plt ファイルがバイナリ形式であることを考慮すると、32/64 ビットのいくつかの要素のバイナリ サイズに関して問題が発生する可能性があり、リリースとリリース間で移植できない可能性のある erlang リリースに関するメタデータが存在する可能性があります。
ところで、dialyzer plt ファイルのコンパイルには 30 分もかからず、その後はコマンド ラインで編集できます。そのため、単にファイルを再作成するのではなく、ファイルを移動する必要があります (これには、その特定のリリースのダイアライザー ファイルが常に存在するという利点もあります)。とアーキテクチャ)?
Twitter の @andrewtj が Kostis Sagonas の言葉を教えてくれました。Kostis は、2 台のマシンが同一の構成である必要がある場合、PLT ファイルのコピーが可能であると書いています。(同じ構成にするのは簡単ではないと思いますが…)
https://twitter.com/#!/andrewtj/status/94752252941709312
http://groups.google.com/group/erlang-programming/msg/c34baf501eee56c7