OberonCore https://forum.oberoncore.ru/ |
|
Подсистемы BlackBox https://forum.oberoncore.ru/viewtopic.php?f=1&t=439 |
Страница 1 из 2 |
Автор: | PGR [ Вторник, 24 Апрель, 2007 09:53 ] |
Заголовок сообщения: | Подсистемы BlackBox |
Подсистемы в BlackBox имеют только один уровень вложенности. Мне кажется было бы логичным расширить это, т.е. имя модуля разбивается на строки в зависимости от регистра. Последняя строка -- имя модуля, предшествуюшие -- путь к модулю. Какие будут мысли по этому поводу? |
Автор: | Сергей Губанов [ Вторник, 24 Апрель, 2007 10:03 ] |
Заголовок сообщения: | Re: Подсистемы BlackBox |
PGR писал(а): ...Мне кажется было бы логичным расширить это...
А почему не наоборот, может логичнее как раз сузить? ![]() |
Автор: | PGR [ Вторник, 24 Апрель, 2007 10:13 ] |
Заголовок сообщения: | |
В смысле обобщить... ![]() |
Автор: | batyrmastyr [ Вторник, 24 Апрель, 2007 23:26 ] |
Заголовок сообщения: | Re: Подсистемы BlackBox |
PGR писал(а): Подсистемы в BlackBox имеют только один уровень вложенности. Мне кажется было бы логичным расширить это, т.е. имя модуля разбивается на строки в зависимости от регистра. Последняя строка -- имя модуля, предшествуюшие -- путь к модулю.
Какие будут мысли по этому поводу? Может более общим будет разделитель- точка, т.к. можно сюда же деление по версиям вписать. Например, модуль system.subsus1.modname.1.0.1. Пользоваться так: либо IMPORT system.subsus1.modname, либо указать частично/целиком версию IMPORT system.subsus1.modname.1 (если предполагаем, что с 1.x будет работать, а с 2.0 - нет). Ну и при неполном указании использовать самый свежий вариант, т.е. system.subsus1.modname.1.4.0 если более "свежих" 1.х нет. Правда такой подход усложнит работу, особенно с доками- как выдавать ответ на system.subsus1.modname.1, если изначально шла 1.0 потом добавили 1.1 и 1.3 - исходный или сгенерированный? |
Автор: | Илья Ермаков [ Среда, 25 Апрель, 2007 00:49 ] |
Заголовок сообщения: | |
По поводу уровня над модулями - в умах "бродят" идеи введения надуровня "кластер", со спец. декларативным языком спецификации связей... Эти идеи развивает на форуме Королевства Дельфи Руслан Богатырев. См. http://delphikingdom.com/asp/talktopic. ... 78#msg4378 и далее. Более простой и более насущный механизм - без какого-либо изменения схемы именования, но с изменением схемы хранения, распространения, интеграции... Это пакеты. И пакеты в ближайшее время планируется сделать. |
Автор: | ___ [ Среда, 25 Апрель, 2007 05:44 ] |
Заголовок сообщения: | |
только непонятно... зачем все это..... зачем многочисленные уровни вложенности? (если очень нужно внутри папки мод(значит и в сим и код), как-то сгруппировать модули, то можно давать самостоятельно им общую часть названия: Stud/mod/Urok1Uprajnenie1 Stud/mod/Urok1Uprajnenie2 ... ) зачем неявные механизмы импорта("берется самый свежий")? (как вариант можно хранить исходники модулей разных версий в разных файлах: Stud/mod/ModuleVer1 Stud/mod/ModuleVer2 .... но само имя модуля будет во всех StudModule, когда пробуем программу с новой версией, то компилируем ее, если нужно откатиться то компилируем более раннюю тут теряется возможность перехода на исходник "выделил имя модуля где угодно->исходный текст") (или такие приемы сильно неудобны? или может не везде подходят) на сколько усложнятся схемы хранения, распространения, интеграции с пакетами? |
Автор: | PGR [ Среда, 25 Апрель, 2007 13:56 ] |
Заголовок сообщения: | Re: Подсистемы BlackBox |
batyrmastyr писал(а): Может более общим будет разделитель- точка, т.к. можно сюда же деление по версиям вписать.
В этом случае не будет обратной совместимости с языком КП ![]() А вот с делениями на версии не соглашусь. Если меняется интерфейс модуля, то лучше дать ему новое имя, а не плодить совместимые и несовместимые версии. |
Автор: | Илья Ермаков [ Среда, 25 Апрель, 2007 14:13 ] |
Заголовок сообщения: | |
___ писал(а): на сколько усложнятся схемы хранения, распространения, интеграции с пакетами?
В схеме, которую прорабатываем сейчас, усложнятся не сильно. Все будет просто, как два пальца ![]() |
Автор: | PGR [ Среда, 25 Апрель, 2007 14:15 ] |
Заголовок сообщения: | |
Автор: | PGR [ Среда, 25 Апрель, 2007 14:16 ] |
Заголовок сообщения: | |
Илья Ермаков писал(а): Более простой и более насущный механизм - без какого-либо изменения схемы именования, но с изменением схемы хранения, распространения, интеграции... Это пакеты. И пакеты в ближайшее время планируется сделать.
А можно поподробнее о пакетах? |
Автор: | Илья Ермаков [ Среда, 25 Апрель, 2007 14:43 ] |
Заголовок сообщения: | |
Объяснять дольше, чем один раз потом увидеть... Частично - развитие идеи профилей в ББ. Реализуется через "монтирование" виртуальной файловой системы. Для рядового пользователя среды выйдет очень просто... |
Автор: | Сергей Губанов [ Среда, 25 Апрель, 2007 14:56 ] |
Заголовок сообщения: | |
PGR писал(а): В смысле обобщить...
![]() Да не, я в смысле вообще сузить: отменить папочную иерархию и все модули класть в одно единственное объектное хранилище. |
Автор: | PGR [ Среда, 25 Апрель, 2007 15:10 ] |
Заголовок сообщения: | |
Сергей Губанов писал(а): Да не, я в смысле вообще сузить: отменить папочную иерархию и все модули класть в одно единственное объектное хранилище.
Наверное так и будет в пакетах... Будем ждать ![]() |
Автор: | Борис Рюмшин [ Среда, 25 Апрель, 2007 18:08 ] |
Заголовок сообщения: | |
Сергей Губанов писал(а): PGR писал(а): В смысле обобщить... ![]() Да не, я в смысле вообще сузить: отменить папочную иерархию и все модули класть в одно единственное объектное хранилище. А что Вы понимаете под "объектным хранилищем"? |
Автор: | ___ [ Среда, 25 Апрель, 2007 19:41 ] |
Заголовок сообщения: | |
Сергей Губанов писал(а): PGR писал(а): В смысле обобщить... ![]() Да не, я в смысле вообще сузить: отменить папочную иерархию и все модули класть в одно единственное объектное хранилище. зачем чтоб все модули совсем в куче то лежали?) если нужно среду порезать то придется искать ненужные модули а так хрясь подсистему срезал и доволен(правда все равно нужно связи знать, а то отрежешь чего др импортируют)) как раз текущий вариант оптимален по несложности/полезности...на мой взгляд правда... |
Автор: | Илья Ермаков [ Среда, 25 Апрель, 2007 21:05 ] |
Заголовок сообщения: | |
Оптимален. Вот он и будет чуть-чуть доработан до ума. Чтобы в хранении подсистем было чуть больше порядка и для интеграции новых подсистем не требовалось правки каких-либо файлов основной среды (Config, добавление пункта в существующие меню и т.п.), т.е. чтобы добавление новых компонент происходило полностью Plug&Play - и наоборот: удаление - просто Delete&Enjoy ![]() + будет добавлена возможность временного подключения какого-либо пакета (подсистем, собранных воедино в архив) и отключения, с автоматической отгрузкой всех модулей и прочего контекста - народ на Королевстве Дельфи уже давно пеняет, "что вы, мол, в своем ББ не сделаете специальный формат интерактивных документов-приложений и небольшой браузер под него"... |
Автор: | batyrmastyr [ Среда, 25 Апрель, 2007 23:18 ] |
Заголовок сообщения: | Re: Подсистемы BlackBox |
PGR писал(а): batyrmastyr писал(а): Может более общим будет разделитель- точка, т.к. можно сюда же деление по версиям вписать. В этом случае не будет обратной совместимости с языком КП ![]() А вот с делениями на версии не соглашусь. Если меняется интерфейс модуля, то лучше дать ему новое имя, а не плодить совместимые и несовместимые версии. Не нравится неразрешенная точка- есть подчерк который разрешен. С делением на версии идея вот в чем- указываем ту версию которая нам точно подходит, если такой нет, то загрузчик пытается прилинковать к интерфейсно-совместимой (сперва-из подверсий, потом из версий выбираем самую близкую) реализации. в памяти храним все пригодившиеся версии. Только вот поменять под такую схему надо немало ![]() |
Автор: | Илья Ермаков [ Среда, 25 Апрель, 2007 23:38 ] |
Заголовок сообщения: | |
Множественная загрузка модулей - это отдельная басня... И она потребует серьезной переделки (хотя общая схема решения уже существует). Сейчас задача немного усовершенствовать существующую схемы без "революций". А дальше... Дальше - больше ![]() Кстати, в некотором смысле "множественная загрузка" в среде есть. В памяти может быть много версий одного модуля, но - только один из них доступен как текущий и только у него есть секция кода. От всех ранее выгруженных версий модуля остаются секции описаний. Именно поэтому динамические объекты типов выгруженного модуля могут продолжать существовать в памяти, доступны их дескрипторы типов. А вот методы - недоступны ![]() |
Автор: | Сергей Губанов [ Четверг, 26 Апрель, 2007 11:22 ] |
Заголовок сообщения: | |
___ писал(а): зачем чтоб все модули совсем в куче то лежали?
Ну, в этом тоже можно отыскать смысл. Вы только не подумайте, что я за что-то агитирую. Моё предложение было лишь контрответом на "логичное" предложение разрешить неограниченную вложенность папок: априори не понятно какой из этих вариантов более "логичный". По моему, никакой. |
Автор: | Trurl [ Четверг, 26 Апрель, 2007 13:31 ] |
Заголовок сообщения: | |
Сергей Губанов писал(а): Ну, в этом тоже можно отыскать смысл.
Например, если файловая система полская. Вообще, мне кажется, что нынешня схема именования модулей вызвана ограничениями DOS на длину имени файла. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |