OberonCore
https://forum.oberoncore.ru/

Пересмотр внутренней структуры BB
https://forum.oberoncore.ru/viewtopic.php?f=127&t=4654
Страница 4 из 7

Автор:  Пётр Кушнир [ Пятница, 06 Декабрь, 2013 11:29 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Alexander Shiryaev писал(а):
HostFiles не может загружаться динамически.
Технически, реализация Files внутри запускаемого файла может называться по другому, "EmbedFiles". А HostFiles устанавливается уже динамически.

Автор:  Пётр Кушнир [ Пятница, 06 Декабрь, 2013 11:42 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Иван Денисов писал(а):
Пётр Кушнир писал(а):
Проблема с петлей возникла потому, что принцип работы 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 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

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

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

Автор:  Alexander Shiryaev [ Пятница, 06 Декабрь, 2013 14:17 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Пётр Кушнир писал(а):
Alexander Shiryaev писал(а):
HostFiles не может загружаться динамически.
Технически, реализация Files внутри запускаемого файла может называться по другому, "EmbedFiles". А HostFiles устанавливается уже динамически.


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

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

Автор:  Пётр Кушнир [ Пятница, 06 Декабрь, 2013 19:02 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

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

Автор:  Info21 [ Пятница, 06 Декабрь, 2013 20:42 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

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

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

Автор:  Info21 [ Пятница, 06 Декабрь, 2013 20:55 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

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

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

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

Автор:  Alexander Shiryaev [ Пятница, 06 Декабрь, 2013 20:56 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

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


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

Автор:  Alexander Shiryaev [ Пятница, 06 Декабрь, 2013 21:03 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

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

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


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

Автор:  Илья Ермаков [ Пятница, 06 Декабрь, 2013 21:13 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Alexander Shiryaev писал(а):
HostFiles не может загружаться динамически.


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

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

Автор:  Илья Ермаков [ Пятница, 06 Декабрь, 2013 22:01 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Для примера приложения, в котором лежат параллельно реализации для обоих ОС, и просто выбирается пускач под ту или иную ОС.

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

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

См. Readme.

Автор:  Alexander Shiryaev [ Пятница, 06 Декабрь, 2013 22:20 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Илья Ермаков писал(а):
Для примера приложения, в котором лежат параллельно реализации для обоих ОС, и просто выбирается пускач под ту или иную ОС.

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

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

См. Readme.


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

Автор:  Илья Ермаков [ Пятница, 06 Декабрь, 2013 22:33 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Ну да, это негуёвое приложение.

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

Автор:  Пётр Кушнир [ Суббота, 07 Декабрь, 2013 00:37 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Alexander Shiryaev писал(а):
Так тут Host-а почти нет.
Как и build-скриптов, кстати.

Автор:  Alexander Shiryaev [ Суббота, 07 Декабрь, 2013 00:44 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Пётр Кушнир писал(а):
Alexander Shiryaev писал(а):
Так тут Host-а почти нет.
Как и build-скриптов, кстати.

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

Автор:  Alexander Shiryaev [ Суббота, 07 Декабрь, 2013 00:48 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Илья Ермаков писал(а):
Ну да, это негуёвое приложение.

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

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

Автор:  Пётр Кушнир [ Суббота, 07 Декабрь, 2013 00:49 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Alexander Shiryaev писал(а):
Пётр Кушнир писал(а):
Alexander Shiryaev писал(а):
Так тут Host-а почти нет.
Как и build-скриптов, кстати.

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

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

Автор:  Иван Кузьмицкий [ Суббота, 07 Декабрь, 2013 19:15 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Пётр Кушнир писал(а):
В целях повышения уровня абстракции дискуссии предлагаю для обозначения потенциальных реализаций System использовать слово "платформа", и более не использовать слово Host ни для чего, кроме обозначения конкретной негерметичной :) подсистемы.
Это только запутает дискуссию. Потому что в ходе разговора используется слово "платформонезависимый", которое не про эту платформу.

Автор:  Пётр Кушнир [ Суббота, 07 Декабрь, 2013 19:54 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

Вообще-то красные стрелки идут или не идут к блоку Host, помимо ОС, а значит, платформозависимость заключается в зависимости от Host в основном.

Автор:  Иван Денисов [ Суббота, 07 Декабрь, 2013 19:58 ]
Заголовок сообщения:  Re: Пересмотр внутренней структуры BB

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


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

Страница 4 из 7 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/