OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 22 Октябрь, 2017 22:11

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




Начать новую тему Ответить на тему  [ Сообщений: 113 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 11:29 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2401
Откуда: Россия, Ярославль
Alexander Shiryaev писал(а):
HostFiles не может загружаться динамически.
Технически, реализация Files внутри запускаемого файла может называться по другому, "EmbedFiles". А HostFiles устанавливается уже динамически.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 11:42 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2401
Откуда: Россия, Ярославль
Иван Денисов писал(а):
Пётр Кушнир писал(а):
Проблема с петлей возникла потому, что принцип работы HostMenus не совпадал с принципом построения петель в WinApi. А HostMenus не позволял реализовать другой принцип, потому что HostMenus заточен на работу под Windows.
Нет, проблема не в HostMenus, а в том, что не нашлось специалиста по Linux который смог бы совместить прокрутку Gtk2 петли и прокрутку Actions, так чтобы не грузить проц и не подвисали Actions. В итоге начали грешить на Gtk2, и что надо писать сразу для иксов... короче, ответа нет.
Вы сейчас подтвердили мои слова: в winapi главный цикл строит программист, поэтому Services.actionHook.Step можно было вызывать из HostMenus.Loop в нужный момент.
В GTK-версии HostMenus вы потеряли возможность управлять главным циклом, однако структура модуля HostMenus предполагала вызов из него actionHook.Step, и это несовпадение ожиданий вызвало проблемы.


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 1922
Откуда: Красноярск
Пётр Кушнир писал(а):
Вы сейчас подтвердили мои слова: в winapi главный цикл строит программист, поэтому Services.actionHook.Step можно было вызывать из HostMenus.Loop в нужный момент.
В GTK-версии HostMenus вы потеряли возможность управлять главным циклом, однако структура модуля HostMenus предполагала вызов из него actionHook.Step, и это несовпадение ожиданий вызвало проблемы.

Не подтвердили, управление главным циклом — единственный приемлемый вариант для каркаса, другого варианта нет. Нельзя строить каркас на петле другого каркаса, нужен полный контроль. В Gtk2 есть вариант управления собственным главным циклом, но мы чего-то недопонимаем во архитекторе Gtk2, короче, надо больше экспериментов, больше обсуждений, больше специалистов по Linux. Поэтому я так давил на Инфо21, чтобы открыть поскорее проект для общего обсуждения. Сейчас обсуждение по прежнему закрыто от свободных специалистов по Linux, так как Gtk2 часть под завесой тайны :) Есть наработки Димыча по Gtk2, я буду пилить после нового года их поверх открытой части Александра, подглядывая в закрытую версию одним глазком, чтобы начать открытые обсуждения этой проблемы. Было бы очень здорово, чтобы параллельно шло педантичное закручивание гаек в плане герметичности в виндовозной версии. Готов в этом участвовать по мере сил, правда обидно, что мы делаем это не в форке от Center.develop :)


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 427
Откуда: Егорьевск
Пётр Кушнир писал(а):
Alexander Shiryaev писал(а):
HostFiles не может загружаться динамически.
Технически, реализация Files внутри запускаемого файла может называться по другому, "EmbedFiles". А HostFiles устанавливается уже динамически.


HostFiles не может загружаться динамически, потому что для динамической загрузки любого модуля (кроме интерфейсных -- WinApi, LinLibc и т.д.) необходим HostFiles.

А если HostFiles ("EmbedFiles") уже и так будет загружен (статически), то зачем ещё один HostFiles?
И вообще, зачем, например, в Linux загружать HostFiles от Windows?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 19:02 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2401
Откуда: Россия, Ярославль
Alexander Shiryaev писал(а):
А если HostFiles ("EmbedFiles") уже и так будет загружен (статически), то зачем ещё один HostFiles?
Цитата:
Объекты-каталоги - очень подходящее решение, когда может ожидаться существование одного доминирующего исполнения расширяемого типа черного ящика, без исключения существования других исполнений.
Это цитата из русской версии документации http://oberoncore.ru/blackbox/environment
Доминирующее решение не должно исключать остальные. Учитывая, что невыгружаемый модуль не может полностью удовлетворять озвученному принципу черного ящика, я считаю, что решение с bootstrapWinFiles и bootstrapLinFiles которые слинкованы в .exe и .so, а уже после загрузки загрузчика загрузчик загружает загружаемую/выгружаемую версию файловой directory. Подумайте, может, эта файловая система вообще будет расположена в облачном хранилище амазона/гугла, мы же не можем решать за других, какие файлы им использовать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 20:42 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7680
Откуда: Троицк, Москва
Илья Ермаков писал(а):
У меня, схематично, было так: пускач (EXE или ELF) выставляет признак, на какой ОС работаем ...
А! въехал.
На разных платформах запускаются разные бинарные "пускачи".

Этак можно просто иметь две рядышком лежащие разные системы для разных платформ :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 20:55 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7680
Откуда: Троицк, Москва
Иван Кузьмицкий писал(а):
ББ выглядит так, будто его кроили из двух важных концепций.
Первая из них - это объектная оберон-ОС, к её реализации отнеслись серьёзно и она проработана прекрасно.
Вторая из них - прокладка между первой концепцией и гостевой ОС, где возникают явные сложности с качественной проработкой абстракций самой ОС.
В этои и была главная фишка замысла: к оберон-ОС приделать skin, подстраивающийся под look-and-feel гостевой ОС.

И все сложности именно оттуда, от гостевых ОС, за которыми не угонишься.

Возможно, надо наплевать на look-and-feel. Не гнаться.
Иметь чирикающий Оберон с более-менее общепринятыми интерфейсами важнее, чем фокусы с полной мимикрией под гостевую ОС.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 20:56 
Аватара пользователя

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 427
Откуда: Егорьевск
Пётр Кушнир писал(а):
Alexander Shiryaev писал(а):
А если HostFiles ("EmbedFiles") уже и так будет загружен (статически), то зачем ещё один HostFiles?
Цитата:
Объекты-каталоги - очень подходящее решение, когда может ожидаться существование одного доминирующего исполнения расширяемого типа черного ящика, без исключения существования других исполнений.
Это цитата из русской версии документации http://oberoncore.ru/blackbox/environment
Доминирующее решение не должно исключать остальные. Учитывая, что невыгружаемый модуль не может полностью удовлетворять озвученному принципу черного ящика, я считаю, что решение с bootstrapWinFiles и bootstrapLinFiles которые слинкованы в .exe и .so, а уже после загрузки загрузчика загрузчик загружает загружаемую/выгружаемую версию файловой directory. Подумайте, может, эта файловая система вообще будет расположена в облачном хранилище амазона/гугла, мы же не можем решать за других, какие файлы им использовать.


Можно просто вызвать Files.SetDir. HostPackedFiles, например, так и работает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 21:03 
Аватара пользователя

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 427
Откуда: Егорьевск
Info21 писал(а):
Илья Ермаков писал(а):
У меня, схематично, было так: пускач (EXE или ELF) выставляет признак, на какой ОС работаем ...
А! въехал.
На разных платформах запускаются разные бинарные "пускачи".

Этак можно просто иметь две рядышком лежащие разные системы для разных платформ :)


Сейчас это, конечно, работать не будет (из-за динамически загружаемых модулей подсистемы Host и из-за Init), но вторичные каталоги ("/Use") работают. То есть то платформонезависимое, что находится во вторичном каталоге, будет работать и в Windows, и в Linux.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 21:13 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8822
Откуда: Россия, Орёл
Alexander Shiryaev писал(а):
HostFiles не может загружаться динамически.


Не может, он прошивается в пускач.

Я для примера назвал, как системный модуль, который "на слуху" у всех - и упустил этот момент :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 22:01 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8822
Откуда: Россия, Орёл
Для примера приложения, в котором лежат параллельно реализации для обоих ОС, и просто выбирается пускач под ту или иную ОС.

http://i.ermakov.pw/soft/Oda_Simple_HTTP.7z

HTTP-сервер для статического контента.
Это то самое из 2010-го года.

См. Readme.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 22:20 
Аватара пользователя

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 427
Откуда: Егорьевск
Илья Ермаков писал(а):
Для примера приложения, в котором лежат параллельно реализации для обоих ОС, и просто выбирается пускач под ту или иную ОС.

http://i.ermakov.pw/soft/Oda_Simple_HTTP.7z

HTTP-сервер для статического контента.
Это то самое из 2010-го года.

См. Readme.


Так тут Host-а почти нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Декабрь, 2013 22:33 
Модератор
Аватара пользователя

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

Просто пример подхода, когда в одном комплекте могут сосуществовать все реализации (благодаря неукоснительному следованию принципу: "одно имя модуля" - "единственная реализация").


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 07 Декабрь, 2013 00:37 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2401
Откуда: Россия, Ярославль
Alexander Shiryaev писал(а):
Так тут Host-а почти нет.
Как и build-скриптов, кстати.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 07 Декабрь, 2013 00:44 
Аватара пользователя

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 427
Откуда: Егорьевск
Пётр Кушнир писал(а):
Alexander Shiryaev писал(а):
Так тут Host-а почти нет.
Как и build-скриптов, кстати.

Ну да, как и исходников :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 07 Декабрь, 2013 00:48 
Аватара пользователя

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 427
Откуда: Егорьевск
Илья Ермаков писал(а):
Ну да, это негуёвое приложение.

Просто пример подхода, когда в одном комплекте могут сосуществовать все реализации (благодаря неукоснительному следованию принципу: "одно имя модуля" - "единственная реализация").

А вообще хорошо было бы так сделать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 07 Декабрь, 2013 00:49 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2401
Откуда: Россия, Ярославль
Alexander Shiryaev писал(а):
Пётр Кушнир писал(а):
Alexander Shiryaev писал(а):
Так тут Host-а почти нет.
Как и build-скриптов, кстати.

Ну да, как и исходников :)

Ну можно положить их рядом, ничего не изменится.
Платформы уже разведены по отдельным пространствам имен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 07 Декабрь, 2013 19:15 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 07 Декабрь, 2013 19:54 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2401
Откуда: Россия, Ярославль
Вообще-то красные стрелки идут или не идут к блоку Host, помимо ОС, а значит, платформозависимость заключается в зависимости от Host в основном.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 07 Декабрь, 2013 19:58 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 1922
Откуда: Красноярск
Сам себе сейчас кажусь ужасным консерватором, но мне очень нравится задуманная Оминк архитектура. Host — очень хорошее слово, ведущий, хозяин...
Lingvo Computers писал(а):
1) хост — общий термин, описывающий нечто, содержащее ресурс и предоставляющее к нему доступ


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


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

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


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

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


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

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