Тема: Delphi SDK для KolibriOS (2020-2022)
Я думаю над возобновлением разработки, в связи с чем стоит вопрос в расстановке приоритетов. После такого долгого перерыва приступить к разработке Кантора напрямую не получится, сначала неплохо бы вспомнить код, работая над более обозримой задачей, обеспечивающей быстрый результат. Такой задачей, как обычно, выступит PE Tool. В рамках 6-й версии я могу добавить некоторые опции и доработать существующие, делающие PE Tool более пригодной для разработки под KolibriOS, пока не добавляя поддержку форматов KolibriOS напрямую.
В связи с этим хотелось бы увидеть Delphi в качестве штатного инструмента разработки под KolibriOS. В статье Leency о компиляторах, которую я считаю официальным описанием разработки на языках высокого уровня под KolibriOS, Delphi перечислен в списке экзотических или неактуальных инструментов, что видеть неприятно.
Для успешного развития PE Tool в сторону KolibriOS требуется описать стек разработки на Delphi понятным для программиста Delphi языком, чтобы Leency смог включить его в свою статью. В настоящий момент, как понимаю, наиболее проработанный способ разработки включает в себя следующий набор инструментов (toolchain) и модулей:
Компилятор Delphi в составе IDE или командной строки
Утилиту omf2d
Открытый компоновщик ld (возможно, какой-то особой версии, не из стандартного набора GNU)
Скрипт сборки для ld
Облегченные версии модулей SysInit и System для Delphi
Модуль или набор модулей Delphi, разработанные 0CodErr, содержащие поименованные функции API KolibriOS.
Всё это предлагается описать в виде статьи с краткими примерами и образцами вывода программ, как было сделано для PE Tool. Возможно, даже стоит подготовить дистрибутив открытых программ для этого стека, чтобы их не приходилось выцарапывать с форума. Всё это повысит мою заинтересованность в развитии поддержки KolibriOS в своих инструментах, включая Кантор.
Если целью команды KolibriOS является привлечение разработчиков на Delphi (в числе прочих), поддержку KolibriOS лучше сделать в стиле Delphi, аналогично поддержке других операционных систем. Стиль Delphi подразумевает наличие одного большого модуля, соответствующего названию платформы: Windows, libc. Соответственно, поддержка KolibriOS также должна состоять из одного модуля KolibriOS или Kolibri, содержащего все именованные функции API. Функции, не относящиеся к прикладной разработке, можно выделить в отдельный модуль. К примеру, сетевые функции вполне допустимо вынести в модуль KolibriNet. В этом случае подключение библиотек для сетевой программы на Delphi будет предельно простым:
uses
KolibriOS, KolibriNet;
Всё это придаст серьезности стеку Delphi. Перестал следить за форумом, но когда смотрел его последний раз, всё выглядело сделанным на коленке, лишь в некоторых аспектах стремящимся к развитию.
Если в PE Tool будет реализована прямая поддержка форматов исполнимых файлов KolibriOS, появится второй стек, состоящий из Delphi и PE Tool.
По всей видимости, я забыл про стек на основе exe2kos, pe2kos и подобных утилитах. PE Tool заменит как раз его. Наверное, его тоже надо как-то описать, если это штатный способ разработки программ для KolibriOS.