Насколько портативны файлы Erlang beam? - PullRequest
14 голосов
/ 13 февраля 2010

У меня временная ситуация, когда файлы лучей скомпилированы на одном узле выполняются на другом узле. Являются ли файлы луча переносными?

Насколько близко должны быть версии дистрибутивов Erlang?

Ответы [ 2 ]

10 голосов
/ 13 февраля 2010

Файлы лучей переносимы между узлами, так как они представляют собой байт-код, который интерпретируется виртуальной машиной Erlang, так же, как работает Java. Исключением является то, что они скомпилированы для собственной оптимизации (+ native), и в этом случае они, очевидно, не очень переносимы, за исключением, возможно, между машинами Windows. (отредактируйте два года спустя: также машины, которые имеют идентичные аппаратные и программные настройки, как вы могли бы найти в использовании Erlang в телекоммуникациях)

Мудрая версия, очевидно, что вы не должны использовать функции, которые не поддерживает самая старая версия. Пока поддерживаются эти функции, он должен работать, даже если разница в версии велика.

Также обратите внимание, что некоторые модули могли быть экспериментальными в более ранних версиях, и поэтому их функции могли иметь несколько иные результаты.

7 голосов
/ 13 февраля 2010

Файлы лучей должны быть достаточно переносимыми между узлами. Если на узлах работают разные версии виртуальной машины Erlang, у вас могут возникнуть проблемы. Особое внимание следует уделить использованию параметризованных модулей и атрибута модуля -extends (). Если на одной из машин установлена ​​виртуальная машина, установленная с помощью менеджера пакетов (например, apt), возможно, она старая В прошлом у меня были проблемы с модулем регулярных выражений re.

.
...