История изменений
Исправление X512, (текущая версия) :
Ты представляешь, как это будет динамически грузится?
Да. Оберон так и работает. Каждый исходник компилируется в отдельный динамически загружаемый исполняемый файл. Таких модулей загружаются сотни и более и всё быстро стартует и работает. Причём даже на очень слабом железе таком как Apple Macintosh 128K или ранних 32 битных процессорах.
При загрузке для каждой переменной найди символ
O(log(n)). Бинарный поиск в отсортированном массиве символов.
и засунь его адрес в таблицу адресов. А потом для чтения переменной прочитай адрес из ячейки адреса, и только после этого прочитай саму переменную.
Не обязательно. Есть релокации, когда символ записывается напрямую в место использования безо всяких таблиц так что нет никакой разницы в скорости между статической и динамической линковкой. ELF это умеет.
Исходная версия X512, :
Ты представляешь, как это будет динамически грузится?
Да. Оберон так и работает. Каждый исходник компилируется в отдельный динамически загружаемый исполняемый файл. Таких модулей загружаются сотни и более и всё быстро стартует и работает. Причём даже на очень слабом железе таком как Mac OS Classic или ранних 32 битных процессорах.
При загрузке для каждой переменной найди символ
O(log(n)). Бинарный поиск в отсортированном массиве символов.
и засунь его адрес в таблицу адресов. А потом для чтения переменной прочитай адрес из ячейки адреса, и только после этого прочитай саму переменную.
Не обязательно. Есть релокации, когда символ записывается напрямую в место использования безо всяких таблиц так что нет никакой разницы в скорости между статической и динамической линковкой. ELF это умеет.