Если вы хотите передать функцию A из модуля M, на другую машину, надо чтобы там был этот модуль с такой функцией, иначе просто передача fun M:A/Arity не сработает
Василий, да, ваше предложение насчет передачи исходного текста и последующей компиляцией можно считать за решение, но я ожидал, что динамизм Эрланга позволит мне передать уже скомпилированный BEAM-байткод и выполнить его.
передавать можно в виде кода и компилить на удалённую, или просто гарантировать что на удалённой тачке будет модуль с этойфункцией нужной версии
он хочет чистую функциональщину - т.е. вот фунция, вот ее код. код передал и все. без всякой привязки к модулям. такой фичи нет, только для inline функций.
Василий, да, ваше предложение насчет передачи исходного текста и последующей компиляцией можно считать за решение, но я ожидал, что динамизм Эрланга позволит мне передать уже скомпилированный BEAM-байткод и выполнить его.
На свой вопрос ответа не получил. Оценочные суждения за ответ не считаются.
Ок, сделать можно так: прочитать модули с диска в память. Передать их на другую ноду. Там их интерпретировать как модули. Ну и вызывать в них функции. Я подозреваю, что вы будете первопроходцем на этом пути. Потому что остальных устраивает вариант задеплоить одинаковые модули на все машины, и загрузить их на старте ноды.
Ок, сделать можно так: прочитать модули с диска в память. Передать их на другую ноду. Там их интерпретировать как модули. Ну и вызывать в них функции. Я подозреваю, что вы будете первопроходцем на этом пути. Потому что остальных устраивает вариант задеплоить одинаковые модули на все машины, и загрузить их на старте ноды.
Василий, да, ваше предложение насчет передачи исходного текста и последующей компиляцией можно считать за решение, но я ожидал, что динамизм Эрланга позволит мне передать уже скомпилированный BEAM-байткод и выполнить его.
скомпилированный код передавать можно. в шелле для кластера nl(module). например. за пределами шелла - надо смотреть модули типа code