Projekt PaSh, koji razvija alate za paralelno izvršavanje shell skripti, najavio je prelazak pod pokroviteljstvo organizacije Linux Foundation, koja će osigurati infrastrukturu i usluge potrebne za nastavak razvoja. Izvorni kod projekta distribuira se pod MIT licencom i uključuje komponente napisane na jezicima Python, Shell, C i OCaml.
PaSh uključuje JIT kompajler, runtime i biblioteku anotacija:
- Runtime pruža skup primitiva za podršku paralelnom izvršavanju skripti.
- Biblioteka anotacija definira skup svojstava koja opisuju situacije u kojima je dopušteno paraleliziranje pojedinačnih komandi POSIX i GNU Coreutils.
- Kompajler u trenutku analizira predloženu shell skriptu u apstraktno sintaktičko stablo (AST), dijeli je na fragmente prikladne za paralelno izvršavanje i formira na njihovoj osnovi novu verziju skripte, čiji dijelovi mogu biti izvršeni istovremeno. Informacije o komandama koje dopuštaju paralelizaciju dobivaju se iz biblioteke anotacija. Tijekom generiranja paralelno izvršene verzije skripte, u kod se umeću dodatne konstrukcije iz Runtime-a.

Na primjer, skripta koja obrađuje dva datoteke f1.md i 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!/’ u normalnim uvjetima obrađivat će dvije datoteke uzastopno:


Izvor: opennet.ru
