OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 19:19

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




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Пятница, 10 Июнь, 2011 00:01 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
http://oberoncore.ru/bbcc/subs/ert0dev/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ert0dev
СообщениеДобавлено: Пятница, 10 Июнь, 2011 10:27 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Код:
(!) SednaBrowser.ExecuteThis LOAD "books.xml" "books"


Остаётся только верить, что всё работает! :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ert0dev
СообщениеДобавлено: Суббота, 16 Июль, 2011 00:20 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
добавлены компоненты ert0devCompiler ert0devDebug ert0devVarWriter ert0devVarLogger


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ert0dev
СообщениеДобавлено: Вторник, 19 Июль, 2011 11:42 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Кажется, ert0devCompiler.CompileSub, ert0devCompiler.DeleteSubObjs, ert0devDebug.UnloadSub как команды избыточны, т.к. перекрываются ert0devCompiler.CompileThis, ert0devCompiler.DeleteThisObjs, ert0devDebug.UnloadThis.?

(обновл. 24.07.2011) вопрос закрыт: команды *Sub* убраны из User-Man


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Август, 2011 17:26 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Поправил описание ert0dev(Compiler | Debug | VarWriter) в User-Man/Dev-Man с целью сделать его более понятным.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Август, 2011 17:39 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Попробовал сделать список компиляции для всего ББ. Просто для пробы. Побочной функции.
Код:
^Q "ert0devCompiler.ListCompiled; ert0devCompiler.DeleteThisObjs; ert0devCompiler.CompileThis" Com$ Comm$ Ctl$ Dev$ Form$ Host$ Obx$ Ole$ Sql$ Std$ System$ Text$ Win$ Xhtml$ ~
Колбасило минуты две супротив 45 секунд
(уточнение, 26.05.2012) Две минуты шла компиляция указанной выше командой, побочным результатом которой стал приведённый ниже список. Компиляция по этому списку (с разрешёнными зависимостями) идёт 45 с.
Код:
^Q DevCompiler.CompileThis
ObxSample ObxRandom ObxPhoneDB ObxAddress0 SqlObxNets SMath Math Fonts WinSql WinGL WinCmc WinApi XhtmlWriters XhtmlEntitySets

   ComEnumRect CommV24 Strings Ports WinOle WinNet WinMM WinGLUtil WinGLAux WinDlg WinCtl

   ComTools ComPhoneBook ComObject ComKoalaExe ComKoalaDll ComKoala ComEnum Printers Kernel Files Dialog Dates WinRpc WinOleDlg WinOleAut XhtmlStdFileWriters

   ComPhoneBookActiveX CtlT CtlC CtlADODB HostFiles ObxUnitConv ObxPhoneUI1 ObxPhoneUI ObxDialog StdLoader Stores Services Sequencers Models Meta Log Integers Converters WinOleCtl

   CommStreams CtlStdType CtlOfficeBinder CtlOffice CtlMSForms CtlGraph9 CtlGraph8 CtlExcel5 CtlDAO36 CtlDAO35 CtlAccess8 HostRegistry HostPackedFiles HostFonts ObxStores SqlDrivers SqlDB Views Printing Mechanisms Controllers

   CommTCP CtlVBIDE CtlPowerPoint9 CtlPowerPoint8 CtlOutlook9 CtlOutlook8 CtlExcel9 CtlExcel8 CtlAccess9 HostPorts ObxViews0 ObxTrap ObxFileTree ObxBitmap OleStorage SqlObxInit SqlObxExt SqlObxDB StdInterpreter StdCFrames Properties Containers TextModels TextMappers XhtmlTextTableMarkers

   CtlWord9 CtlWord8 DevTypeLibs FormModels ObxViews6 ObxViews5 ObxViews4 ObxViews3 ObxViews2 ObxViews14 ObxViews13 ObxViews12 ObxViews11 ObxViews10 ObxViews1 ObxTickers ObxScroll ObxPatterns ObxOmosi ObxLines ObxControls ObxCalc ObxBlackBox OleData SqlObxUI StdViewSizer StdScrollers StdLogos StdClocks Documents Config TextRulers

   FormViews FormControllers ObxControlShifter StdTabViews Windows Controls TextSetters

   DevInspector HostTabFrames HostMechanisms ObxFldCtrls ObxCtrls ObxContIter ObxButtons StdDialog StdApi TextViews TextControllers TextCmds

   DevSelectors DevReferences DevMarkers DevComInterfaceGen HostWindows HostPrinters HostMail HostClipboard HostCFrames HostBitmaps ObxTwins ObxTabs ObxRatCalc ObxPDBRep2 ObxPDBRep1 ObxPDBRep0 ObxOpen1 ObxOpen0 ObxMMerge ObxLookup1 ObxLookup0 ObxHello1 ObxGraphs ObxFact ObxDb ObxConv ObxCaps ObxAscii ObxAddress2 ObxAddress1 ObxActions SqlOdbc3 SqlOdbc SqlObxViews SqlObxTab SqlObxGen SqlControls SqlBrowser StdTables StdHeaders StdFolds StdDebug StdCmds XYplane In

   DevAlienTool FormGen FormCmds HostTextConv HostPictures HostDialog HostCmds ObxPDBRep3 ObxCubes StdStamps StdLog StdLinks StdETHConv StdCoder Out XhtmlExporter

   ComPhoneBookClient ComKoalaTst ComConnect ComAggregate CommObxStreamsServer CommObxStreamsClient DevSearch DevRBrowser DevProfiler DevLinkChk DevCPM DevCommanders HostMenus ObxWrappers ObxWordEdit ObxTabViews ObxPi ObxPDBRep4 ObxParCmd ObxOrders ObxLinks ObxLabelLister ObxHello0 ObxFern ObxCount1 ObxCount0 OleServer OleClient StdMenuTool Init

   DevSubTool DevPacker DevLinker DevDependencies DevDebug DevCPT DevCPS DevCPH DevCPE DevCPB DevCmds DevBrowser DevAnalyzer OleViews

   DevMsgSpy DevHeapSpy DevCPP DevCPL486 DevCPC486 DevComDebug ObxExcel

   DevCPV486 DevCompiler


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 16 Август, 2011 18:52 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
А в чем смысл, простыми словами?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 17 Август, 2011 07:35 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
DevCompiler.CompileThis, DevDebug.UnloadThis: список модулей для команд компиляции/выгрузки подсистемы в процессе разработки нужно сопровождать вручную, чтобы он соответствовал текущему набору модулей и зависимостям между ними.

ert0devCompiler.CompileThis, ert0devDebug.UnloadThis избавляют от этого. В качестве побочного результата приделано построение списка модулей для DevCompiler.CompileThis.

Выше (viewtopic.php?p=64690#p64690) --- результат пробы построить список компиляции для ББ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 17 Август, 2011 09:58 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Евгений Темиргалеев писал(а):
DevCompiler.CompileThis, DevDebug.UnloadThis: список модулей для команд компиляции/выгрузки подсистемы в процессе разработки нужно сопровождать вручную, чтобы он соответствовал текущему набору модулей и зависимостям между ними.
А, понял. Переупорядочить список модулей в правильном порядке.

Так и надо было прежде всего сделать тулзу, которая берет список модулей (из текста) -- и правильно его переупорядочивает (печатая в текст).
Было бы прозрачно и понятно.
Скомбинировать с компиляцией проще вручную -- не каждую секунду это делается.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 17 Август, 2011 10:45 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Info21 писал(а):
Так и надо было прежде всего сделать тулзу, которая берет список модулей (из текста) -- и правильно его переупорядочивает (печатая в текст).
Было бы прозрачно и понятно.
Скомбинировать с компиляцией проще вручную -- не каждую секунду это делается.
Есть одно но: для тулзы, которая компилирует (выгружает) в правильном порядке есть простое тупое надёжное решение. Надо отдельно поблагодарить тов. Ермакова за эту идею: раз компилируется быстро, значит можно не заморачиваться и использовать полный перебор.

Сделать же некомпилирующую (невыгружающую) тулзу, которая строит список --- значительно сложнее (мульон нюансов).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 17 Август, 2011 11:06 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Евгений Темиргалеев писал(а):
Сделать же некомпилирующую (невыгружающую) тулзу, которая строит список --- значительно сложнее (мульон нюансов).
Да ну уж, мульон.
Но готов поверить, что там можно применить какой-то то трюк.

Кстати, не из-за него скорость падала с 45 сек. до 2 минут?


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

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

Там же тупо и нагло делается. Компилируется в порядке, в котором отдаёт Files. Запоминается количество неоткомпилировавшихся. Они ещё раз компилируются. Выполняется до тех пор, пока либо неоткомпилировавшихся не останется, либо их число не уменьшилось после последнего прохода (т.е. они не компилируется не из-за зависимостей).


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Info21 писал(а):
Но готов поверить, что там можно применить какой-то то трюк.
Кстати, не из-за него скорость падала с 45 сек. до 2 минут?
Да. Блэкбокс компилируется за 15 итераций:
ert0devCompiler docu писал(а):
Для компиляции списка модулей, перечисленных в произвольном порядке, применяется многократная повторная компиляция списка — пока все модули не скомпилируются, либо пока количество ошибочных не перестанет уменьшаться.
ert0dev User-Man писал(а):
Увеличение времени компиляции для отдельных подсистем практически не заметно, учитывая высокую скорость компиляции модулей и их относительно небольшое число, что вполне вписывается в реалии покомпонентной разработки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 17 Август, 2011 11:23 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Понял, спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 17 Август, 2011 13:57 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Илья Ермаков писал(а):
Там же тупо и нагло делается. Компилируется в порядке, в котором отдаёт Files. Запоминается количество неоткомпилировавшихся. Они ещё раз компилируются. Выполняется до тех пор, пока либо неоткомпилировавшихся не останется, либо их число не уменьшилось после последнего прохода (т.е. они не компилируется не из-за зависимостей).

Евгений Темиргалеев писал(а):
Да. Блэкбокс компилируется за 15 итераций:

А если какого-то модуля вообще не окажется? Для проверки этого факта по-любому придётся список модулей делать при первом проходе. А раз этот список всё-равно уже будет, то лучше один раз выполнить его топологическую сортировку, и не делать 15 проходов.


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
igor писал(а):
А раз этот список всё-равно уже будет, то лучше один раз выполнить его топологическую сортировку...
Она и получается за эти проходы. Вопрос в способе. Нам было лучше:
Евгений Темиргалеев писал(а):
Надо отдельно поблагодарить тов. Ермакова за эту идею: раз компилируется быстро, значит можно не заморачиваться и использовать полный перебор.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 17 Август, 2011 15:21 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
igor писал(а):
А раз этот список всё-равно уже будет, то лучше один раз выполнить его топологическую сортировку, и не делать 15 проходов.


Геморрой(чик) не в сортировке, а в том, что связи импорта придётся выковыривать из исходников.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 17 Август, 2011 15:29 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Илья Ермаков писал(а):
...связи импорта придётся выковыривать из исходников.
Это тов. Горячев уже сделал: http://www.zinnamturm.eu/downloadsAC.htm#Bbt
И тов. Ильин: http://oberoncore.ru/wiki/blackbox/sysgraph

Ещё оминковская тулза есть: DevDependencies.CreateTool. Она анализирует символьные файлы. :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 17 Август, 2011 18:06 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Евгений Темиргалеев писал(а):
igor писал(а):
... лучше один раз выполнить его топологическую сортировку...
Она и получается за эти проходы. Вопрос в способе.
Хозяин - барин, как говорится. :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 17 Август, 2011 18:21 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Илья Ермаков писал(а):
igor писал(а):
... лучше один раз выполнить его топологическую сортировку, и не делать 15 проходов.

Геморрой(чик) не в сортировке, а в том, что связи импорта придётся выковыривать из исходников.
Да, придётся (ну, и что? :) ). Я для себя давным-давно решил, что сначала следует парсить заголовки и секции импорта всех модулей проекта (с составлением отсортированного списка модулей и точек входа при втором заходе), а затем повторно последовательно загружать в нужном порядке и компилить остальные части исходников. Не случайно секция импорта находится в самом начале модуля :wink: .


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

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


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

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


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

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