【问题标题】:How portable are Erlang beam files?Erlang 梁文件的便携性如何?
【发布时间】:2010-02-12 22:53:48
【问题描述】:

我有一种临时情况,即在一个节点上编译的梁文件 在另一个节点上执行。 Beam 文件是否可移植?

Erlang 发行版的版本需要多接近?

【问题讨论】:

    标签: erlang beam


    【解决方案1】:

    Beam 文件可以跨节点移植,因为它们是由 Erlang VM 解释的字节码,与 Java 的工作方式相同。例外情况是,如果它们是为本地优化(+native)而编译的,在这种情况下,它们显然不是很便携,除了可能在 Windows 机器之间。 (两年后编辑:还有具有相同硬件和软件设置的机器,就像您在电信使用 erlang 时可能会发现的那样)

    版本方面,很明显您不应该使用最旧版本不支持的功能。只要功能受支持,即使版本差距很大,它也应该可以工作。

    另请注意,某些模块可能在早期版本中是实验性的,因此它们的功能可能会产生略微不同的结果。

    【讨论】:

    • 感谢您的回答和您的宝贵时间。光束文件中是否有任何路径名“硬编码”?
    • 仅当您在其中指定路径名时。
    【解决方案2】:

    Beam 文件应该可以跨节点移植。如果节点运行不同版本的 Erlang VM,那么您可能会遇到麻烦。特别要警惕的特性包括参数化模块的使用和 -extends() 模块属性。如果其中一台机器正在运行通过包管理器(即 apt)安装的 VM,则它可能是旧的。我过去遇到困难的一个模块是正则表达式模块re

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 2011-04-24
      • 2020-08-03
      • 2015-05-13
      相关资源
      最近更新 更多