LINUX.ORG.RU

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

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

Ты представляешь, как это будет динамически грузится?

Да. Оберон так и работает. Каждый исходник компилируется в отдельный динамически загружаемый исполняемый файл. Таких модулей загружаются сотни и более и всё быстро стартует и работает. Причём даже на очень слабом железе таком как Apple Macintosh 128K или ранних 32 битных процессорах.

При загрузке для каждой переменной найди символ

O(log(n)). Бинарный поиск в отсортированном массиве символов.

и засунь его адрес в таблицу адресов. А потом для чтения переменной прочитай адрес из ячейки адреса, и только после этого прочитай саму переменную.

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

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

Ты представляешь, как это будет динамически грузится?

Да. Оберон так и работает. Каждый исходник компилируется в отдельный динамически загружаемый исполняемый файл. Таких модулей загружаются сотни и более и всё быстро стартует и работает. Причём даже на очень слабом железе таком как Mac OS Classic или ранних 32 битных процессорах.

При загрузке для каждой переменной найди символ

O(log(n)). Бинарный поиск в отсортированном массиве символов.

и засунь его адрес в таблицу адресов. А потом для чтения переменной прочитай адрес из ячейки адреса, и только после этого прочитай саму переменную.

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