OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 14 Май, 2024 18:33

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Удобная работа с модулями
СообщениеДобавлено: Пятница, 16 Февраль, 2007 18:47 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Имеется 2 модуля: основной и вспомогательный.

Во вспомогательном модуле находим ошибку и исправляем ее. При повторном запуске программы BlackBox использует старую загруженную версию модуля. Просто взять и выгрузить эту старую версию вспомогательного модуля не получится, т.к. он используется основным модулем. Поэтому приходится вручную выгружать сначала основной, а затем вспомогательный модуль. Если в программе много модулей и зависимостей между ними, то это становится слишком сложным.

Как автоматизировать этот процесс, чтобы перекомпилировались только измененные модули, затем в нужном порядке выгружались и запускалась программа с внесенными изменениями?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 16 Февраль, 2007 19:46 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Способов много...

Во-первых, можно иметь в каком-то документе список файлов в порядке зависимости, выделить его и сделать Dev->Unload Module List.
Такой список можно взять (или просто использовать "на месте") из Info->Loaded Modules.

Можно воспользоваться утилиткой Tools->Create Tool: напишите в произвольном порядке список всех модулей, участвующих в вашем "проекте", выделите его и запустите Tools->CreateTool. Будет открыт документ с заготовленными командами для компиляции, выгрузки линковки всех этих модулей, при этом они будут рассортированы по зависимостям автоматически.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 17 Февраль, 2007 06:04 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Как-то все это неудобно...

А как вы поступаете в такой ситуации? Используете этот Tool?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 17 Февраль, 2007 13:04 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Скажу за себя. Набрать пару команд один раз и потратить полминуты - не больше - о каком неудобстве тут можно вообще говорить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 17 Февраль, 2007 13:12 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Это в том случае, если иерархия модулей несложная. Если же мне неизвестно, сколько модулей в даннный момент пользуют поправленный, либо я роюсь внутри среды ББ - тогда спасёт перезапуск ББ (или запуск второй копии ББ - посмотрел на резульаты, закрыл, и правь дальше). Конечно, это неудобно. Ну так напишите соответствующий модулёк, все Вам спасибо скажут :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 17 Февраль, 2007 16:49 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2450
Откуда: Россия, Томск
Я делаю вот так. В каждой подсистеме завожу специальный файлик со списком модулей подсистемы. По традиции BlackBox этот файлик называю Docu/Sys-Map.odc. Там храню полный список файлов подсистемы и команды для полной перекомпиляции и полной выгрузки. Вот пример содержимого:

Код:
Source
Bytes   Cmds   Engine   Views   Models   CtxMenu   AutoSave   AutoSaveDlg   AutoAsk   Config   PortDlg   CreateDlg   RequestDlg   SetValueDlg

Drivers
Dev00   Dev01   Dev02   Dev03

Testing
TestSending   TestBytes   TestLink

Resources
Strings   Menus   AutoSaveDlg   PortDlg   CreateDlg   RequestDlg   SetValueDlg

^Q DevCompiler.CompileThis
   MateBytes MateEngine MateModels MateDev00 MateDev01 MateDev02 MateDev03 MateViews MateCtxMenu MateTestSending MateCmds MateAutoSave MateAutoSaveDlg MateAutoAsk MateConfig MatePortDlg MateCreateDlg MateRequestDlg MateSetValueDlg MateTestBytes MateTestEngine MateTestLink ~

^Q DevDebug.UnloadThis
   MateTestLink MateTestEngine MateTestBytes MateSetValueDlg MateRequestDlg MateCreateDlg MatePortDlg MateAutoAsk MateAutoSaveDlg MateConfig MateAutoSave MateCmds MateTestSending MateCtxMenu MateViews MateDev00 MateDev01 MateDev02 MateDev03 MateModels MateEngine MateBytes ~


Все имена файлов в разделах Source, Drivers, Testing, Resources - это ссылки, щелчок по которым открывает соответствующий файл подсистемы. Если буду писать документацию, то добавлю соответствующий раздел со ссылками. В командерах слова Compile и Unload делаю жирными. За полнотой списков и правильным порядком модулей в этих командерах слежу вручную, это не сложно.

Во время работы над подсистемой окошко с открытым Sys-Map.odc делаю маленьким и помещаю в правой части окна BlackBox. (Состояние рабочего стола сохраняется подсистемой Desktop из коллекции Зинна.) Чтобы на нем не было горизонтальной полосы прокрутки, устанавливаю размер документа по ширине окна (меню Tools - Document Size... - Window Width). Высоту окна делаю такой, чтобы было видно все от начала документа до командера Unload, т.е. чтобы все можно было сразу кликнуть, не пользуясь прокруткой.

Для превращения текста вида "MateBytes" в ссылку на "Mate/Mod/Bytes.odc" сделал специальные процедуры. Это неплохое упражнение на понимание того, как использовать и комбинировать объекты в BlackBox. Аналогичные процедуры сделал для создания ссылок на ресурсы и документацию и поместил их в свое собственное меню.


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

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


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

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


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

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