Erlang光束文件有多便携?

Dan*_*anM 14 erlang beam

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

Erlang发行版的版本有多接近?

Tor*_*amo 10

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

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

另请注意,某些模块可能在早期版本中已经过实验,因此它们的功能可能会略有不同.


cbo*_*cbo 7

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