Projekt PaSh, který vyvíjí nástroje pro paralelní spouštění shell skriptů, oznámil, že přechází pod záštitu Linux Foundation, která bude poskytovat infrastrukturu a služby nezbytné pro pokračování vývoje. Kód projektu je distribuován pod licencí MIT a zahrnuje komponenty v Pythonu, Shell, C a OCaml.
PaSh obsahuje JIT kompilátor, runtime a knihovnu anotací:
- Runtime poskytuje sadu primitiv pro podporu paralelního provádění skriptů.
- Knihovna anotací definuje sadu vlastností, které popisují situace, ve kterých je povolena paralelizace jednotlivých příkazů POSIX a GNU Coreutils.
- Kompilátor za běhu analyzuje navrhovaný skript Shell do abstraktního syntaktického stromu (AST), rozbije jej na fragmenty vhodné pro paralelní provádění a na jejich základě vytvoří novou verzi skriptu, jejíž části lze spouštět současně. Informace o příkazech, které umožňují paralelizaci, přebírá kompilátor z knihovny anotací. V procesu generování paralelně běžící verze skriptu jsou do kódu vloženy další konstrukce z Runtime.
Například skript, který zpracovává dva soubory f1.md a f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | seřadit | jedinečný | comm -13 dict.txt — > out cat out | wc -l | sed 's/$/ chybně napsaná slova!/' normálně zpracuje dva soubory postupně:
Zdroj: opennet.ru