Насколько портативный файлы луча Erlang?

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

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

14
задан Jonas 9 November 2010 в 14:25
поделиться

2 ответа

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

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

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

10
ответ дан 1 December 2019 в 13:47
поделиться

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

7
ответ дан 1 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: