OberonCore
https://forum.oberoncore.ru/

Мысли про загрузку и выгрузку модулей
https://forum.oberoncore.ru/viewtopic.php?f=30&t=6592
Страница 2 из 2

Автор:  Илья Ермаков [ Четверг, 02 Апрель, 2020 18:50 ]
Заголовок сообщения:  Re: Мысли про загрузку и выгрузку модулей

Trurl писал(а):
Загрузили модуль, сделали NEW(x), выгрузили, еще раз загрузили. Версия типа актуальная, но она не совпадает с версией типа x.


Нет, там происходит следующее:

Сделали NEW(x), потом он где-то болтается (пусть по якорю остался жить в другом модуле).
После перезагрузки модуля все NEW(x) будут уже порождать объект с другим тегом (новым).
А старый объект будет жить, ссылаясь на старый дескриптор (в невыгружаемой части старой версии модуля). И он уже не будет ни под какие статические сравнения IS|WITH и приведения типа опознаваться (т.к. правая сторона IS|WITH всегда статически связана с актуальной версией типа, по импорту - мы не могли перезагрузить модуль и не перезагрузить его импортирующий, который с IS|WITH, а "переменных типа" у нас нет, если мы не используем Meta.Item).

Автор:  Trurl [ Четверг, 02 Апрель, 2020 21:01 ]
Заголовок сообщения:  Re: Мысли про загрузку и выгрузку модулей

Илья Ермаков писал(а):
И он уже не будет ни под какие статические сравнения IS|WITH и приведения типа опознаваться

Так в том и дело, что не будет.

Автор:  adimetrius [ Четверг, 02 Апрель, 2020 21:14 ]
Заголовок сообщения:  Re: Мысли про загрузку и выгрузку модулей

Trurl писал(а):
Илья Ермаков писал(а):
И он уже не будет ни под какие статические сравнения IS|WITH и приведения типа опознаваться

Так в том и дело, что не будет.

Если в модуле M есть x IS Module.Type, то выгрузить Module можно, только выгрузив предварительно M. Об этом, кмк, Илья пишет.

Автор:  Trurl [ Пятница, 03 Апрель, 2020 00:29 ]
Заголовок сообщения:  Re: Мысли про загрузку и выгрузку модулей

И что? Этот x может быть создан даже до загрузки M.

Автор:  Илья Ермаков [ Суббота, 04 Апрель, 2020 11:27 ]
Заголовок сообщения:  Re: Мысли про загрузку и выгрузку модулей

Trurl писал(а):
И что? Этот x может быть создан даже до загрузки M.


x да. Тогда он стал "НЛО". Не соответствует больше никакому типу.

Автор:  ssb83 [ Суббота, 22 Август, 2020 16:46 ]
Заголовок сообщения:  Re: Мысли про загрузку и выгрузку модулей

У Андреаса Пирклбауэра эта задача безопасной выгрузки модулей решена в его Extended Oberon (бывший Experimental Oberon, расширенный вариант системы Project Oberon 2013). Подробное описание что и как в 13-страничном документе: https://github.com/andreaspirklbauer/Ob ... Oberon.pdf

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/