Projekt PaSh, vyvíjajúci nástroje na paralelné vykonávanie shell-skriptov, oznámil prechod pod patronát organizácie Linux Foundation, ktorá poskytne infraštruktúru a služby potrebné pre pokračovanie vývoja. Kód projektu je distribuovaný pod licenciou MIT a zahŕňa komponenty v jazykoch Python, Shell, C a OCaml.
PaSh zahŕňa JIT-kompilátor, runtime a knižnicu anotácií:
- Runtime poskytuje súbor primitív na podporu paralelného vykonávania skriptov.
- Knižnica anotácií definuje súbor vlastností, popisujúcich situácie, v ktorých je dovolené paralelizovať jednotlivé príkazy POSIX a GNU Coreutils.
- Kompilátor za behu analyzuje zadaný shell-skript do abstraktného syntaktického stromu (AST), rozdeľuje ho na segmenty vhodné na paralelné vykonávanie a vytvára na ich základne novú verziu skriptu, ktorého časti môžu byť vykonávané súčasne. Informácie o príkazoch, ktoré umožňujú paralelizáciu, sú kompilátorom získavané z knižnice anotácií. Počas generovania paralelne vykonávaného variantu skriptu sa do kódu vkladajú dodatočné konštrukcie z runtime.

Napríklad skript, ktorý spracováva dva súbory f1.md a 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\/\$\/ mispelled words!\/’ v bežných podmienkach spracuje dva súbory sekvenčne:


Zdroj: opennet.ru
