Projekt PaSh, který vyvíjí nástroje pro paralelní vykonávání shell skriptů, oznámil přechod pod ochranu organizace Linux Foundation, která poskytne infrastrukturu a služby potřebné pro pokračování ve vývoji. Kód projektu je šířen pod licencí MIT a zahrnuje komponenty napsané v jazycích Python, Shell, C a OCaml.
PaSh zahrnuje JIT kompilátor, runtime a knihovnu anotací:
- Runtime poskytuje sadu primitiv pro podporu paralelního vykonávání skriptů.
- Knihovna anotací definuje sadu vlastností, které popisují situace, ve kterých je možné paralelizovat jednotlivé příkazy POSIX a GNU Coreutils.
- Kompilátor na místě analyzuje předložený shell skript do abstraktního syntaktického stromu (AST), rozděluje ho na fragmenty vhodné pro paralelní vykonávání a vytváří na jejich základě novou verzi skriptu, jejíž části mohou být vykonávány současně. Informace o příkazech, které umožňují paralelizaci, získává kompilátor z knihovny anotací. Při generování paralelně vykonávané varianty skriptu se do kódu vkládají další konstrukce z runtime.

Například skript zpracovávající dva soubory 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!\/’ za normálních okolností zpracuje dva soubory sekvenčně:


Zdroj: opennet.ru
