LINUX.ORG.RU

байт-код для bash


0

0

А никто не пробовал сделать? Пришла в голову такая мысль - больше половины системы использует bash-скриптинг, причем файлики и по 10-20 килобайт, а изменяются они как правило раз в несколько недель и разработчиками пакетов, а то и вообще не меняются месяцами, но тем не менее каждый раз при запуске системы к примеру интерпретатору приходится разбирать подобные файлы...

Ваше мнение??

Мое мнение таково что сие нереально, подумай почему.

wfrr ★★☆
()

Это не принесёт сколько-нибудь заметного прироста производительности.

Legioner ★★★★★
()

сделай proof-of-concept с замерами уменьшения времени на запуск скриптов и увеличения времени на их редактирование. результаты - сюда. тогда и обсудим

jtootf ★★★★★
()

wfrr, нет ничего невозможного: http://freshmeat.net/projects/shc/

Топистартеру: shell-скрипты - это совсем не та область, которую надо оптимизировать по скорости с ушерб гибкости. Инструментарий есть, но нужно ли им пользоваться - это другой вопрос.

Slavaz ★★★★★
()
Ответ на: комментарий от Slavaz

>> wfrr, нет ничего невозможного: http://freshmeat.net/projects/shc/

Это ненастоящий компилятор. Он просто зашифровывает скрипт и запихивает его в бинарник, который при запуске расшифровывает его обратно и скармливает /bin/sh'у.

Deleted
()
Ответ на: комментарий от jtootf

> переписать всё на LISP'е и послать на Марс

... и ждать, когда оно разовьётся и захватит Землю.

mv ★★★★★
()

можешь переписать на lua

dimon555 ★★★★★
()
Ответ на: комментарий от jtootf

> а разве ещё не? :)

Вроде, тут, на Южной Моравии, огромных человекоподобных боевых роботов под управлением Емакса не видно... А у вас уже?

mv ★★★★★
()
Ответ на: комментарий от mv

Дык один из вопросов к Ющенко был, если не ошибаюсь: "Когда огромные человекоподобные роботы встанут на боевое дежурство на границе с Россией?". Второй интересный вопрос: "Как пропатчить KDE2 под FreeBSD?". Вот насчёт KDE ответил в прямом эфире, а про боевых роботов - молчок. Военная тайна, наверное. :)

Slavaz ★★★★★
()
Ответ на: комментарий от Slavaz

Это были вопросы к Путину. Он на них ответил :)

mv ★★★★★
()

Идея забавная. Надо будет потыкать на досуге;)

Sectoid ★★★★★
()

а мне идея нравится :)

Pi ★★★★★
()
Ответ на: комментарий от anonymous

и тем не менее куча скриптов про которую мну говорит - написана на bash

Vitaly-KF
() автор топика
Ответ на: комментарий от jtootf

Давно мечтаю о зверском злодействе - системе загрузочных скриптов на ant. Причем ant скрипт получается через xslt из некоей красивой диаграммочки в svg, редактируемой в каком-нибудь inkscape. Ну или из dia.

svu ★★★★★
()

> Ваше мнение??

идея прикольная, возьми и попробуй.

Берешь грамматику bash из тарболла http://compilers.iecc.com/comparch/article/05-10-058 , ой, .y файл с грамматикой из исходников (файл parse.y), берешь LLVM и по инструкции отсюда http://code.google.com/p/lizat/wiki/TranslatortoLLVMHowTO прикручиваешь bison/flex грамматику.
Пишешь набор тестов, чтобы меряло скорость вызова отдельного скрипта или детально до конкретного builtins. Наверно, к bootchart что-то можно прикрутить.

anonymous
()
Ответ на: комментарий от anonymous

> системе загрузочных скриптов на asm.

на асме не Ъ. Пиши сразу на форте, на фре с её загрузчиком форт готовый на халяву получится.

anonymous
()
Ответ на: комментарий от anonymous

круче было бы, конечно, повозиться с исходниками bash, написать кодогенератор из bash в llvm. А у LLVM уже есть JIT, его JIT может что-то и соптимизирует.

anonymous
()
Ответ на: комментарий от anonymous

"Загрузочные скрипты на Лиспе/Схеме" -- это Ъ ещё и потому, что можно к ним прикрутить LISFS http://en.wikipedia.org/wiki/Logic_File_System http://www.usenix.org/events/usenix03/tech/full_papers/padioleau/padioleau_ht... , а предикаты в такой LISFS будут задавать конфигурации настройки (сервис запущен/не запущен, пакет установлен/не установлен, порядок запуска сервисов и т.п.). Предикаты вычислять лениво, в итоге скешированное состояние такой ConfigFS будет устанавливаться этими скриптами запуска на схеме.
Ну типа "запустить сервис" -- это ленивая функция, которая запускает сервис, подготавливает ему конфиг, и т.п. Тогда вся остальная логика в инитскриптах пишется в духе генераторов (yield) в Питоне.

anonymous
()
Ответ на: комментарий от anonymous

> идея прикольная, возьми и попробуй.

Попробовал бы, да времени свободного как-то маловато =((( И меня видимо немножко не поняли, я имел ввиду некотороле кэширование скриптов, как к примеру в питоне - есть *.py, а есть ещё *.pyc и *.pyo. Вроде бы и в производительности быстрее и создать эти файлы можно один единственный раз (если скрипт не модифицируется) - при распаковке deb-пакета в postinst...

Vitaly-KF
() автор топика
Ответ на: комментарий от anonymous

> JBash давай пеши) он пока загрузится, обычный уже завершится.

Не факт. Если он будет выполняться под постоянно запущенной виртуальной башмашиной - то наверняка будет быстрее: процесс форкать не надо, интерпретировать текст программы не надо, да и сам скрипт и другие скрипты, вызываемые данным скриптом - уже вероятно подгружены в башмашину и их даже по диску искать не требуется. Заодно можно подправить и уродский синтаксис шелльных языков, заменив его на джаво, сделав к тому же кроссплатформенным. Да и реализовано это уже давно в виде Томката.

anonymous
()
Ответ на: комментарий от anonymous

Давно мечтаю о зверском злодействе - системе загрузочных скриптов на С++ с использованием реестра на основе xml.

anonymous
()

> Ваше мнение??

Питон позиционирует себя как такой вот компилируемый bash, если нужна чуть большая скорость, чем у bash (я не сказал что он с этим справляется). А если текущую скорость можно терпеть, то исходник лучше байт-кода -- его всегда можно прочитать.

www_linux_org_ru ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.