我有一个临时情况,在一个节点上编译的beam文件在另一个节点上执行。梁文件是可移植的吗?
Erlang发行版的版本需要多接近?
发布于 2010-02-13 08:42:37
Beam文件可以跨节点移植,因为它们是由Erlang VM解释的字节码,其工作方式与Java相同。例外情况是,如果它们是为本机优化(+ native )编译的,在这种情况下,它们显然不是很容易移植,除了可能在windows机器之间。(两年后编辑:还有具有相同硬件和软件设置的机器,您可能会在erlang的电信用途中找到)
在版本方面,很明显,你不应该使用最旧版本不支持的特性。只要支持这些功能,即使版本差距很大,它也应该可以工作。
还要注意的是,一些模块在早期版本中可能是实验性的,因此它们的功能可能会产生略有不同的结果。
发布于 2010-02-13 11:29:07
Beam文件应该可以在节点之间相当容易地移植。如果节点运行的是不同版本的Erlang VM,那么您可能会遇到麻烦。需要特别注意的特性包括使用参数化模块和-extends()模块属性。如果其中一台机器运行的VM是通过包管理器(即apt)安装的,那么它可能是旧的。我在过去遇到困难的一个模块是正则表达式模块re。
https://stackoverflow.com/questions/2255658
复制相似问题