LINUX.ORG.RU

История изменений

Исправление X512, (текущая версия) :

Но лишняя линковка — это лишнее время загрузки, потому по возможности ее делают на этапе компиляции.

Зависит от задачи. Если модулей не много или процесс работает длительное время, то с отдельной динамической линковкой каждого модуля нет проблем. Зато например можно динамически поменять модуль на серверном приложении в продакшене без перезапуска приложения.

А это ничего, что одни модули могут использовать структуры данных из других модулей?

Ничего, в других системах с модулями (C/C++, Java/C#, Python, Go, Rust и т.д.) так тоже можно. Модули в одном адресном пространстве могут использовать экспортированные символы других модулей. Компилятор Оберона проверяет так чтобы модуль не использовал приватные символы других модулей.

Исходная версия X512, :

Но лишняя линковка — это лишнее время загрузки, потому по возможности ее делают на этапе компиляции.

Зависит от задачи. Если модулей не много или процесс работает длительное время, то с отдельной динамической линковкой каждого модуля нет проблем. Зато например можно динамически поменять модуль на серверном приложении в продакшене без перезапуска приложения.

А это ничего, что одни модули могут использовать структуры данных из других модулей?

Ничего. Модули в одном адресном пространстве могут использовать экспортированные символы других модулей. Компилятор Оберона проверяет так чтобы модуль не использовал приватные символы других модулей.