OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 06 Июнь, 2023 12:01

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 17 Март, 2023 20:52 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 873
слушайте, а никто не пытался взять из A2 ядро, которое работает поверх ОС, стрипнуть всё остальное, взять компилятор, и запускать это из консоли? не обязательно генерировать монолитные родные бинари: этот же минимальный рантайм можно использовать и для прикладного софта. компилятор ведь хороший, умеет в кучу архитектур, мультипоточность в ядрах из коробки… финальные бинари можно делать как в BB: просто собирать все модули в кучку. зачем мучиться с транспилерами в си, если можно иметь полноценную оберон-систему со всей её модульной динамикой, всё сделано же уже?

понятно, что придётся, по сути, сделать новый рантайм (тексты, файлы, etc.) и пристыковать его к фоксу. и научить фокс генерировать модули-импорты .so/.dll. не так уж сложно. если б в сутках было хотя бы часов пятьдесят-шестьдесят, я бы и сам занялся…


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

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 514
Откуда: Украина, Днепропетровская обл.
Так вроде в A2 уже давно не Fox в качестве компилера?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Март, 2023 00:59 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 873
вы спутали Fox и PACO, кажется. прошлый был PACO, потом его заменили на Fox.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Март, 2023 18:21 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 275
Откуда: Russia
оно уже давно именно так и работает.

https://t.me/A2OperatingSystem/19514


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Март, 2023 18:51 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 873
простите, не имею ни малейшего понятия что там написано, увы: не имею фсбграма.

если на свете существует возможность использовать Fox как обычный консольный комипилятор с небольшим рантаймом для написания софта не под A2, по сути — то это очень круто спрятаная фича. как, впрочем, и почти всё, что относится к A2, увы. очень жаль. так мы слона никогда не продадим. T_T


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Март, 2023 19:38 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 275
Откуда: Russia
не знаю, что, куда и кем "спрятано", но достаточно задать себе вопрос, а как же а2 собирается из а2 и запускается в виде обычного приложения в других ОС?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Март, 2023 20:26 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 873
я довольно криво пояснил, простите. я кагбэ понимаю, что это реализовано, однако я имел в виду совсем не то. или как минимум не совсем то. я имел в виду готовый к использованию пакет, в котором от A2 только ядро и наиминимальнейший рантайм для чтения и компиляции текстовых файлов (ну, и для складывания получившихся артефактов в заданое место). то есть, чтобы выглядело как классический консольный компилятор софта для host os, с биндингами к другим библиотекам, и так далее. плюс минимальный рантайм без подвязок к текстовой и оконной системе A2.

ну, то есть, чтобы взять этот пакет — и просто писать софт под целевую ос (а не под A2), используя минимум из A2 как рантайм. то есть, ядро, чтение текстовых файлов, запись артефактов, динамическая загрузка модулей — и всё. и дальше бинды к «родным» библиотекам.

я понимаю, что это можно оформить из того, что уже есть — но готового-то нет. а жаль. у меня, в общем, не особо праздный интерес: я бы это применил для нескольких своих проектов. но категорически не хватает длины суток, чтобы попытаться это оформить; особенно с учётом того, что с A2 я знаком весьма шапочно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Март, 2023 21:53 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 275
Откуда: Russia
a2 как приложение запускается в виде консольной программы-командной оболочки, из которой стартует gui (или не стартует, если соответствующие команды отсутствуют). Куда уж меньше ужимать?

Код:
module Hello;
import StdIO, Commands, Options;

procedure Run( context: Commands.Context );
var options: Options.Options;
var str: array 256 of char;
begin
  if ~context.arg.GetString( str ) then (* skip app name *)
    context.error.String("Critical error: no arg"); context.error.Update;
    context.result := Commands.CommandError;
    return;
  end;
 
  new( options );
  options.Add( "s", "show", Options.String );

  if options.Parse( context.arg, context.error ) & options.GetString( "show", str ) then
    context.out.String( str ); context.out.Ln;
    context.out.Update;
  end;
end Run;

begin
  trace("Hello, World!");
  Run( StdIO.env );
end Hello.

компиляция
oberon.exe --config=oberon.ini compile Hello.mod

линковка для вин64

oberon.exe --config=oberon.ini link --fileName=hello.exe --fileFormat=PE64CUI --extension=GofWw --displacement=401000H Trace Traps Hello


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Март, 2023 22:10 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 873
Sergej Durmanov писал(а):
a2 как приложение запускается в виде консольной программы-командной оболочки, из которой стартует gui (или не стартует, если соответствующие команды отсутствуют). Куда уж меньше ужимать?
если я верно понимаю — то там вся среда почти заводится, просто без гуёв. то есть, вся механика: текстовые модели, fs translation layer, интерпретаторы команд, etc., etc. то есть, по факту, весь фрэймворк — который в принкладном софте (лично мне) не нужен.

а я бы хотел, чтобы там было только ядро, загрузчик модулей, Files, и Reader для plain text, чтобы кормить компилятор. и всё. а, ну и сам компилятор, конечно. ;-) остальное выкусить и выкинуть. то есть, совсем-совсем минимальный рантайм. а я поверх построю свой, без всего, что делает A2 хорошей. ;-)

если именно это уже есть, и так можно — то руководство бы какое, чтобы выдернуть вот нужные пять-семь модулей и всё. или скрипт для создания такой штуки бы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 19 Март, 2023 22:41 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 873
собственно, до меня дошло, что я опять ни разу не пояснил, зачем оно мне надо.

во-первых, я хочу делать индюшатные видеоигори. хитрый план: поставлять вместе с ними тот же компилер, который был использован для написания, и все модули игоря. соответственно, любой игорь автоматически поставляется с SDK для модов, причём полноценным. минимальные изменения в компилере (запрет на импорт SYSTEM и ещё мелочи для ограничения доступа к другим опасным модулям) — и SDK становится безопасным, хоть и компилируемым в машинный код. причём не надо делать никаких скриптовых языков, JIT, обвязок для экспорта кишок игры в скрипты… киллер фича, ни у кого такой нет.

соответственно, для этой задачи мне не нужно ничего из A2 кроме ядра и минимальной читалки plain text, чтобы завести компилятор. остальное я себе сделаю сам, под конкретные нужды.

а во-вторых, если приделать к фоксу парзер компонентного паскаля, то на это ядро можно пересадить BlackBox. и получить столь желаемую поддержку кучи архитектур в нём. а парзер CP можно будет вернуть обратно в основную A2, он там никому ж не помешает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 23 Март, 2023 05:42 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 275
Откуда: Russia
Fox работает со Streams, а не с Texts. Поэтому и отвязывать ничего не нужно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 23 Март, 2023 06:16 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 873
понял. я довольно давно смотрел в A2, простите. в любом случае: я ваш пример линковки себе схоронил, спасибо. когда появится возможность — полезу разбираться нормально. если у меня хватит терпения хотя бы на PoC, то обязательно сообщу на форуме.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

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


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

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


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

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