Скриптование на Обероне

Только технические вопросы по ЯОС и MINOS. Терминология и прочее - в других форумах.
Ответить
БудДен
Сообщения: 2873
Зарегистрирован: 07.10.18 14:01

Скриптование на Обероне

Сообщение БудДен » 25.12.23 13:36

В A2 и по наследству в ЯОС есть "скриптовый язык", точнее, пародия на него. В нём есть вызов команд,
составное предписание (вызвать несколько команд подряд) и вывод строковых литералов на печать. Составное
предписание завершается с ошибкой, как только первая команда завершается с ошибкой.

Подобный язык минимально достаточен для реализации скриптов типа пересборки ОС, но на каждое ветвление количество
файлов скрипта удваивается. Например, уже есть три скрипта для сборки версии BIOS. Очевидно, это плохо. В итоге, скрипты
пишутся наполовину на Обероне, наполовину на Баше. Правда, нет и функции exec, позволяющий запускать другие программы
из ЯОС в режиме приложения, но это уже отдельная песня.

Я уже пробовал делать скрипты на самом АО, который является полноценным ЯП, вот здесь:

https://tvoygit.ru/budden/jaos/src/comm ... 071f877c0a

Юрий
Сообщения: 36
Зарегистрирован: 11.12.18 17:08

Re: Скриптование на Обероне

Сообщение Юрий » 27.12.23 00:37

Как-то встречал проект, где в качестве скриптового языка для Web использовался Си и компилятор TinyCC, который настолько шустр, что задержка на компиляцию исполняемого модуля не особо заметна. Делал какой-то «наш» человек в Израиле. Самому доводилось делать вместо bat-ников какие-то вызовы из программ на Си.
нет и функции exec
Я тоже неоднократно пытался делать это через какую-то функцию с очевидным именем, но не получалось. Пока не дошло, что надо пользоваться не ею, а spawnl. Типа того:

Код: Выделить всё

spawnl(0, exe_name, exe_name, file_full_name, 0);

БудДен
Сообщения: 2873
Зарегистрирован: 07.10.18 14:01

Re: Скриптование на Обероне

Сообщение БудДен » 08.01.24 19:17

Вызов одной программы из другой - это очень сложный процесс с подводными камнями. На работе я взял код вызова подпроцесса, который был до меня, и в течение 2 лет приходилось к нему пару раз возвращаться, потому что подводные камни ударяли по лодке и ломали её. Это было на Питоне и на Го. ЯОС тяготеет к тому, чтобы быть операционной системой, а не "программой внутри другой операционной системы". Поэтому у меня пока нет планов развивать "скриптование в рамках другой ОС" - речь идёт лишь о той части скриптов, которые уже существуют сейчас, используются в жизненном цикле ЯОС и написаны на System.DoCommands. То, что сейчас написано на bat/bash - так и останется.

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

Ответить