OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 01 Октябрь, 2020 04:54

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Четверг, 02 Апрель, 2020 18:50 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9283
Откуда: Россия, Орёл
Trurl писал(а):
Загрузили модуль, сделали NEW(x), выгрузили, еще раз загрузили. Версия типа актуальная, но она не совпадает с версией типа x.


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 02 Апрель, 2020 21:01 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1298
Илья Ермаков писал(а):
И он уже не будет ни под какие статические сравнения IS|WITH и приведения типа опознаваться

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 02 Апрель, 2020 21:14 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 311
Trurl писал(а):
Илья Ермаков писал(а):
И он уже не будет ни под какие статические сравнения IS|WITH и приведения типа опознаваться

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Апрель, 2020 00:29 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1298
И что? Этот x может быть создан даже до загрузки M.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 04 Апрель, 2020 11:27 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9283
Откуда: Россия, Орёл
Trurl писал(а):
И что? Этот x может быть создан даже до загрузки M.


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 22 Август, 2020 16:46 

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2020, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB