【问题标题】:Erlang Dialyzer PLT file portability between different architecturesErlang Dialyzer PLT 文件在不同架构之间的可移植性
【发布时间】:2011-08-04 22:15:35
【问题描述】:

您能否将 Dialyzer PLT 输出复制并使用到另一台不同架构的机器上?例如,我在 x86_64 Linux 机器上构建了一个 PLT 文件。我可以在 x86 FreeBSD 或 Windows 机器上使用该文件吗?

【问题讨论】:

    标签: erlang dialyzer


    【解决方案1】:

    考虑到dialyzer plt 文件是二进制形式,在某些32/64 位元素的二进制大小方面可能存在一些问题,并且可能有关erlang 版本的元数据可能在发行版和发行版之间无法移植。

    顺便说一句,dialyzer plt 文件编译时间不到半小时,之后可以通过命令行进行编辑,所以为什么要移动文件而不是简单地重新创建它(这也有一个优点是始终拥有 dilyzer 文件那个特定的版本和架构)?

    【讨论】:

      【解决方案2】:

      可以复制 Dialyzer 的 PLT,但是对于两台机器上 PLT 中包含的所有文件,您需要两个前提条件:

      1. 相同的绝对路径:Dialyzer 将每个文件的绝对路径存储在 PLT 中。因此,为了在每台机器上找到实际文件,它必须是相同的。
      2. 相同版本:对于包含的每个 .beam 文件,PLT 存储相关源代码的 MD5 校验和(由于启用了 debug_info,因此嵌入在 beam 文件中)。如果只更改了一行,MD5 就会有所不同,并且 Dialyzer 将假定要更改的文件并重新计算存储在 PLT 中的信息。

      【讨论】:

        【解决方案3】:

        Twitter 上的@andrewtj 好心地告诉了我 Kostis Sagonas 的一句话。 Kostis 写道,PLT 文件的复制是可能的,前提是两台机器必须具有相同的配置。 (虽然我认为拥有相同的配置并不容易......)

        https://twitter.com/#!/andrewtj/status/94752252941709312

        http://groups.google.com/group/erlang-programming/msg/c34baf501eee56c7

        【讨论】:

          猜你喜欢
          • 2012-12-09
          • 2010-12-19
          • 1970-01-01
          • 1970-01-01
          • 2010-10-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多