OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 25 Август, 2019 05:36

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: Воскресенье, 28 Июль, 2019 18:50 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 212
Откуда: Austria, Bruck
Никак не пойму, а зачем в стандартном компиляторе КП объявления\описания символов вынесли в отдельный файл (.osf)?
Может так организовано кеширование (дабы заново не парсить каждый импортируемый модуль)?
Хорошо, пусть так. Но могли бы сохранить в одном файле и объявления и код. Почему не сделали?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Июль, 2019 20:17 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2355
osf файл описывает интерфейсы (по аналогии с заголовочными файлами в Си), а ocf файл описывает их реализации в машинных кодах. Очень часто файл реализации меняется, а файл интерфейсов при этом остаётся неизменным. Есть модули, которые не содержат реализацию вовсе, например в подсистеме Win. Там только интерфейсы.
Компилятор при сборке новых модулей интенсивно использует только символьные файлы osf импортированных модулей, а файлы реализаций ocf не использует.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Июль, 2019 08:53 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2599
Откуда: Россия, Ярославль
.osf это как бы регулирующий файл для выбора модели дистрибуции компонента. Без osf-файла компилятор не сможет сделать импорт модуля (исходник при этом вообще не нужен), а вот скомпилированные ранее импорты не нуждаются в osf-файле для загрузки в память и позднего связывания. Можно распространять с исходником, без исходника, с символами, без символов, чисто код.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Июль, 2019 09:24 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 212
Откуда: Austria, Bruck
Иван Денисов писал(а):
Очень часто файл реализации меняется, а файл интерфейсов при этом остаётся неизменным.
Символьный файл неизменен пока интерфейс неизменен.
Если сделать общий контейнер для символов и кода, то будет то же самое.

Иван Денисов писал(а):
Компилятор при сборке новых модулей интенсивно использует только символьные файлы osf импортированных модулей, а файлы реализаций ocf не использует.
Технически это простое кеширование.

Пётр Кушнир писал(а):
...
Действительно, для коммерческой модели использования такой механизм подходит. Не подумал, что изначально ББ был коммерческим продуктом.

Спасибо. Теперь картинка сложилась: такая реализация позволяет красиво решить и техническую и коммерческую проблемы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Июль, 2019 23:37 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1200
По-моему, это все придумывание обоснований постфактум. Традиция иметь отдельный символьный файл идет еще от модулы и первых версий оберона.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 30 Июль, 2019 18:33 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2599
Откуда: Россия, Ярославль
Да тут где-то пробегало определение модуля, как единицы компиляции, загрузки и распространения, наверное, тоже рационализируют, пытаются найти объяснения тому, что просто есть.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

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


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

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


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

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