Mam tymczasową sytuację, w której pliki belek skompilowane w jednym węźle są wykonywane w innym węźle. Czy pliki belek są przenośne?Jak przenośne są pliki belek Erlang?
Jak blisko muszą być wersje dystrybucji Erlang?
Mam tymczasową sytuację, w której pliki belek skompilowane w jednym węźle są wykonywane w innym węźle. Czy pliki belek są przenośne?Jak przenośne są pliki belek Erlang?
Jak blisko muszą być wersje dystrybucji Erlang?
Pliki wiązki są przenoszone między węzłami, ponieważ są kodami bajtowymi interpretowanymi przez maszynę wirtualną Erlang w taki sam sposób, w jaki działa Java. Wyjątek stanowi sytuacja, w której kompiluje się je pod kątem optymalizacji natywnej (+ natywna), w którym to przypadku są one oczywiście mało przenośne, poza możliwymi między maszynami z systemem Windows. (edycja dwa lata później: również maszyny, które mają identyczne konfiguracje sprzętu i oprogramowania, jak można znaleźć w telekomunikacyjnych zastosowaniach erlanga)
W wersji mądrej, oczywiste jest, że nie należy używać funkcji, których najstarsza wersja nie wsparcie. Dopóki funkcje są obsługiwane, powinno działać, nawet jeśli luka wersji jest duża.
Należy również zauważyć, że niektóre moduły mogły być eksperymentalne we wcześniejszych wersjach, więc ich funkcje mogły mieć nieco inne wyniki.
Pliki wiązki powinny być dość przenośne w węzłach. Jeśli w węzłach działają różne wersje maszyny Erlang VM, mogą wystąpić problemy. Cechy szczególnie ostrożne obejmują użycie sparametryzowanych modułów i atrybutu module -extends(). Jeśli na jednym z maszyn uruchomiono maszynę wirtualną zainstalowaną za pośrednictwem menedżera pakietów (tzn. Apt), prawdopodobnie jest stara. Jednym z modułów, z którymi miałem problemy w przeszłości, jest moduł wyrażeń regularnych re
.
Dziękuję za odpowiedź i za poświęcony czas. Czy nazwy ścieżek są "zakodowane na sztywno" w pliku belki? – DanM
tylko wtedy, gdy określisz w nim nazwy ścieżek. –