OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 17 Июль, 2019 09:21

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




Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Воскресенье, 26 Декабрь, 2010 22:13 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2595
Откуда: Россия, Ярославль
Иван Кузьмицкий писал(а):
Info21 писал(а):
нужен еще один уровень -- чтобы воткнуть библиотеки между ББ и рабочим каталогом? и сохранить схему (если не нашли у себя, идем на уровень библиотеки; если там нет, ищем в ББ)?


Да, мне тоже кажется, что это нужно. Получается очень удобно: ядро ББ + сторонние библиотеки + свой проект.
возникает вопрос - а какой собственно каталог является рабочим? ну, куда компилять и сохранять?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Воскресенье, 26 Декабрь, 2010 22:38 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
Как и в случае /USE, крайний.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Воскресенье, 26 Декабрь, 2010 22:40 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2595
Откуда: Россия, Ярославль
Иван Кузьмицкий писал(а):
Как и в случае /USE, крайний.

а ещё и с сортировкой используемых в проекте кодовых файлов по каталогам. то есть, те, что используются - в каталог проекта, остальные - в каталог подсистем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Воскресенье, 26 Декабрь, 2010 22:56 

Зарегистрирован: Понедельник, 05 Июнь, 2006 09:49
Сообщения: 327
Откуда: Ленинград, Емельянов Алексей Николаевич
Здесь есть проблема. Не должно быть разных версий одного и того же модуля. Поэтому если будет изменен модуль из стандартного ББ то библиотека должна будет брать именно его (из рабочего каталога). Да, есть опасение, что проблем может быть больше чем пользы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Понедельник, 27 Декабрь, 2010 08:17 
Аватара пользователя

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

Сохранять всё только в рабочей. Тогда особых проблем не вижу.

Axcel писал(а):
есть опасение, что проблем может быть больше чем пользы.
Можно уточнить, о каких проблемах тут речь? Примерчик.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Понедельник, 27 Декабрь, 2010 10:09 

Зарегистрирован: Понедельник, 05 Июнь, 2006 09:49
Сообщения: 327
Откуда: Ленинград, Емельянов Алексей Николаевич
Нет, примерчиков нет, просто опасение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Понедельник, 27 Декабрь, 2010 12:11 
Аватара пользователя

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

Откуда-то же опасение возникло?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Понедельник, 27 Декабрь, 2010 17:05 

Зарегистрирован: Понедельник, 05 Июнь, 2006 09:49
Сообщения: 327
Откуда: Ленинград, Емельянов Алексей Николаевич
Info21 писал(а):
Axcel писал(а):
Нет, примерчиков нет, просто опасение.
Ну хоть сценарий, хоть намёк какой, хоть что-то в плане мозгового штурма (когда по голове за идею не бьют).

Откуда-то же опасение возникло?

Ну в общем от не знания механизма обеспечения загрузки актуальных версий модулей при серверной установке. Не возникнет накладок при появлении "третьего"? Допустим для своих нужд мы изменили какой-то модуль из стандартного ББ. Наш проект в наших руках, а библиотеки?. А если библиотека без исходников?
Впрочем (при сохранении все в /use) эта ситуация не зависит от наличия отдельного каталога для библиотек. Это у меня наложилось.
Кстати в Делфи такая ситуация у меня случалась, подцеплялся модуль из другого каталога (такой же, но не совсем) и правильно компилился гад ... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Вторник, 28 Декабрь, 2010 00:51 
Аватара пользователя

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

Вот если бы можно было библиотеки как-то параллельно соединять, тогда да-а-а...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Среда, 20 Март, 2013 13:46 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
Посмотрел внимательно на HostFiles на предмет работы с ключом /USE.

Логика /USE проста, как чурбан и опирается на понятие стартапа (это локатор, указывающий на путь /USE) и теневой директории (это папка, где лежит BlackBox.exe):

1) dir.This использует стартап /USE
2) dir.Old использует теневую директорию, если файл не найден в локаторе.
3) Теневая директория используется для двухпроходного получения списка файлов и локаторов. Первый проход делается в локаторе, второй в теневой директории.

Соответственно, переделать эту логику на любую другую не составляет труда. Проблема в другом, а именно в накладках рабочих папок.

Например, мы имеем три папки:

1) BlackBox (ядро ББ, скачанное с oberon.ch)
2) BBCC (коллекция компонентов из хранилища oberoncore)
3) Work (мои компоненты и проекты)

Пусть Work - это стартап, а BlackBox и BBCC - теневые папки. Тогда если вы являетесь автором компонента BBCC, и решили исправить замеченную ошибку, тогда ваш исходник сохранится в папку Work. Вам придётся вручную переносить его в BBCC и делать коммит. Неудобно!

P.S. Другими словами, как только у нас уровней более двух, как сразу же возникает головная боль (у пользователя) с разруливанием целей для операций записи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Среда, 20 Март, 2013 15:28 

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

Вторая идея, это составлять список каталогов для объединения в режиме "только чтение", а для записи требовать от пользователя отдельный каталог, при этом он может совпадать с одним из каталогов из списка объединения, это остаётся на усмотрение пользователя.

Отдельной проблемой стоит задача выбора источника файлов при наличии одноименных файлов более чем в одном каталоге. Точнее, есть проблема способа задания приоритета источника.

Ну а следующие идеи можно составить из взаимосочетания двух предыдущих.

Особенно это интересно в перспективе, когда наши цепкие лапы доберутся до файловой подсистемы, и виртуальные каталоги обретут небанальную природу, например, расположившись в облачном хранилище, или прямо в репозитории вашей любимой CVS.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Четверг, 21 Март, 2013 14:27 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Иван Кузьмицкий писал(а):
Тогда если вы являетесь автором компонента BBCC, и решили исправить замеченную ошибку, тогда ваш исходник сохранится в папку Work. Вам придётся вручную переносить его в BBCC и делать коммит. Неудобно!
При наличии симлинков проблема синхронизации отпадает. Винда ведь позволяет симлинки на папки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Четверг, 21 Март, 2013 15:53 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
Роман М. писал(а):
Иван Кузьмицкий писал(а):
Тогда если вы являетесь автором компонента BBCC, и решили исправить замеченную ошибку, тогда ваш исходник сохранится в папку Work. Вам придётся вручную переносить его в BBCC и делать коммит. Неудобно!
При наличии симлинков проблема синхронизации отпадает. Винда ведь позволяет симлинки на папки.

Это не отменяет проблемы наличия исходника модуля в двух разных местах


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Четверг, 21 Март, 2013 16:00 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Что-то я не понял в чём всё-таки проблема, когда тот же исходник доступен в двух папках одновременно.

Как только выполнено исправление ошибки в BBCC, делаешь коммит...?! Где здесь конфликт или неудобство?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Пятница, 22 Март, 2013 20:44 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4489
Откуда: Россия, Орёл
Иван Кузьмицкий писал(а):
Соответственно, переделать эту логику на любую другую не составляет труда. Проблема в другом, а именно в накладках рабочих папок.

Например, мы имеем три папки:

1) BlackBox (ядро ББ, скачанное с oberon.ch)
2) BBCC (коллекция компонентов из хранилища oberoncore)
3) Work (мои компоненты и проекты)

Пусть Work - это стартап, а BlackBox и BBCC - теневые папки. Тогда если вы являетесь автором компонента BBCC, и решили исправить замеченную ошибку, тогда ваш исходник сохранится в папку Work. Вам придётся вручную переносить его в BBCC и делать коммит. Неудобно!

P.S. Другими словами, как только у нас уровней более двух, как сразу же возникает головная боль (у пользователя) с разруливанием целей для операций записи.
Не удобно. Вы не первый, кто столкнулся с этой проблемой. :) Конкретное решение организационного плана давно работает: viewtopic.php?p=70771#p70771 и пример в конце заметки.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Суббота, 23 Март, 2013 10:06 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1192
Откуда: Украина, Киев
Могу рассказать как я организовал разработку под AOS может это окажется полезым ЧЯ собратьям :D viewtopic.php?f=22&t=4292


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Суббота, 23 Март, 2013 13:10 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
Роман М. писал(а):
Что-то я не понял в чём всё-таки проблема, когда тот же исходник доступен в двух папках одновременно.

Как только выполнено исправление ошибки в BBCC, делаешь коммит...?! Где здесь конфликт или неудобство?


Я так и не понял, как это решается симлинками. Симлинк позволяет ссылаться на один и тот же файл из разных мест, а у нас ситуация другая - у одного модуля получаются две разных версии, два разных файла. Ведь при чтении из теневой папки документ сохраняется в папку стартапа.

В общем, я переделал HostFiles для поддержки двух теневых папок. Теперь ядро ББ в одной тени, опенсурс-комплект во второй тени, а проекты в стартапе. А если мне надо поработать над опенсурсом, есть второй ярлычок, где опенсурс-комплект подключается обычным образом, через /USE.

Немного непривычно, но зато полный контроль. Да и форк опенсурса, если надо, заводится в такой схеме мгновенно :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Суббота, 23 Март, 2013 14:45 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4489
Откуда: Россия, Орёл
Иван Кузьмицкий писал(а):
В общем, я переделал HostFiles для поддержки двух теневых папок. Теперь ядро ББ в одной тени, опенсурс-комплект во второй тени, а проекты в стартапе. А если мне надо поработать над опенсурсом, есть второй ярлычок, где опенсурс-комплект подключается обычным образом, через /USE.

Немного непривычно, но зато полный контроль. Да и форк опенсурса, если надо, заводится в такой схеме мгновенно :)
Ещё один вариант решения, со своей спецификой, под конкретные нужды. Пример широкой применимости ББ за счёт лёгкой изменчивости.

P.S. Если делать спец. реализацию-обёртку Files вместо переделывания HostFiles, то решение будет компонентным.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Суббота, 23 Март, 2013 14:50 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4489
Откуда: Россия, Орёл
Иван Кузьмицкий писал(а):
Я так и не понял, как это решается симлинками. Симлинк позволяет ссылаться на один и тот же файл из разных мест, а у нас ситуация другая - у одного модуля получаются две разных версии, два разных файла. Ведь при чтении из теневой папки документ сохраняется в папку стартапа.
Проблема решается ссылками на каталоги, а не ссылками на файлы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Иерархия модулей - Возможно ли?
СообщениеДобавлено: Воскресенье, 24 Март, 2013 11:52 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
Евгений Темиргалеев писал(а):
Иван Кузьмицкий писал(а):
Я так и не понял, как это решается симлинками. Симлинк позволяет ссылаться на один и тот же файл из разных мест, а у нас ситуация другая - у одного модуля получаются две разных версии, два разных файла. Ведь при чтении из теневой папки документ сохраняется в папку стартапа.
Проблема решается ссылками на каталоги, а не ссылками на файлы.


Я всё равно не врубаюсь, как симлинка на папку не даст записать исходник ядра (например) во вторичную папку-стартап. Привожу мою схему без использования симлинков


Вложения:
Схема организации комплекта разработчика.png
Схема организации комплекта разработчика.png [ 64.21 КБ | Просмотров: 5633 ]
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу Пред.  1, 2, 3  След.

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


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

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


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

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