Проект PaSh, който развива инструменти за паралелно изпълнение на shell скриптове, обяви, че преминава под покровителството на организацията Linux Foundation, която ще предостави инфраструктурата и услугите, необходими за продължаване на разработката. Кодът на проекта се разпространява под лиценз MIT и включва компоненти на езици като Python, Shell, C и OCaml.
PaSh включва JIT компилатор, runtime и библиотека с анотации:
- Runtime предоставя набор от примитиви за поддръжка на паралелно изпълнение на скриптове.
- Библиотеката с анотации определя набор от свойства, описващи ситуации, при които е разрешено паралелизиране на отделни команди POSIX и GNU Coreutils.
- Компилаторът на лету анализира предоставения shell скрипт в абстрактно синтактично дърво (AST), разделя го на фрагменти, подходящи за паралелно изпълнение, и генерира на тяхна основа нов вариант на скрипта, част от който може да се изпълнява едновременно. Информацията за командите, които позволяват паралелизиране, се извлича от библиотеката с анотации. По време на генерирането на паралелно изпълнявания вариант на скрипта в кода се вмъкват допълнителни конструкции от runtime.

Например, скрипт, който обработва два файла f1.md и f2.md cat f1.md f2.md | tr A-Z a-z | tr -cs A-Za-z ‘\n’ | sort | uniq | comm -13 dict.txt — > out cat out | wc -l | sed ‘s/$/ misspelled words!/’ при нормални условия ще обработи двата файла последователно:


Източник: opennet.ru
