OberonCore https://forum.oberoncore.ru/ |
|
DevCompiler> зачем нужны символьные файлы (.osf)? https://forum.oberoncore.ru/viewtopic.php?f=29&t=6418 |
Страница 1 из 1 |
Автор: | hothing [ Воскресенье, 28 Июль, 2019 18:50 ] |
Заголовок сообщения: | DevCompiler> зачем нужны символьные файлы (.osf)? |
Никак не пойму, а зачем в стандартном компиляторе КП объявления\описания символов вынесли в отдельный файл (.osf)? Может так организовано кеширование (дабы заново не парсить каждый импортируемый модуль)? Хорошо, пусть так. Но могли бы сохранить в одном файле и объявления и код. Почему не сделали? |
Автор: | Иван Денисов [ Воскресенье, 28 Июль, 2019 20:17 ] |
Заголовок сообщения: | Re: DevCompiler> зачем нужны символьные файлы (.osf)? |
osf файл описывает интерфейсы (по аналогии с заголовочными файлами в Си), а ocf файл описывает их реализации в машинных кодах. Очень часто файл реализации меняется, а файл интерфейсов при этом остаётся неизменным. Есть модули, которые не содержат реализацию вовсе, например в подсистеме Win. Там только интерфейсы. Компилятор при сборке новых модулей интенсивно использует только символьные файлы osf импортированных модулей, а файлы реализаций ocf не использует. |
Автор: | Пётр Кушнир [ Понедельник, 29 Июль, 2019 08:53 ] |
Заголовок сообщения: | Re: DevCompiler> зачем нужны символьные файлы (.osf)? |
.osf это как бы регулирующий файл для выбора модели дистрибуции компонента. Без osf-файла компилятор не сможет сделать импорт модуля (исходник при этом вообще не нужен), а вот скомпилированные ранее импорты не нуждаются в osf-файле для загрузки в память и позднего связывания. Можно распространять с исходником, без исходника, с символами, без символов, чисто код. |
Автор: | hothing [ Понедельник, 29 Июль, 2019 09:24 ] |
Заголовок сообщения: | Re: DevCompiler> зачем нужны символьные файлы (.osf)? |
Иван Денисов писал(а): Очень часто файл реализации меняется, а файл интерфейсов при этом остаётся неизменным. Символьный файл неизменен пока интерфейс неизменен.Если сделать общий контейнер для символов и кода, то будет то же самое. Иван Денисов писал(а): Компилятор при сборке новых модулей интенсивно использует только символьные файлы osf импортированных модулей, а файлы реализаций ocf не использует. Технически это простое кеширование. Пётр Кушнир писал(а): ... Действительно, для коммерческой модели использования такой механизм подходит. Не подумал, что изначально ББ был коммерческим продуктом.Спасибо. Теперь картинка сложилась: такая реализация позволяет красиво решить и техническую и коммерческую проблемы. |
Автор: | Trurl [ Понедельник, 29 Июль, 2019 23:37 ] |
Заголовок сообщения: | Re: DevCompiler> зачем нужны символьные файлы (.osf)? |
По-моему, это все придумывание обоснований постфактум. Традиция иметь отдельный символьный файл идет еще от модулы и первых версий оберона. |
Автор: | Пётр Кушнир [ Вторник, 30 Июль, 2019 18:33 ] |
Заголовок сообщения: | Re: DevCompiler> зачем нужны символьные файлы (.osf)? |
Да тут где-то пробегало определение модуля, как единицы компиляции, загрузки и распространения, наверное, тоже рационализируют, пытаются найти объяснения тому, что просто есть. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |