Projekt PaSh, koji razvija alate za paralelno izvršavanje shell skripti, najavio je da se kreće pod okrilje Linux fondacije, koja će obezbijediti infrastrukturu i usluge neophodne za nastavak razvoja. Projektni kod se distribuira pod MIT licencom i uključuje komponente u Python, Shell, C i OCaml.
PaSh uključuje JIT kompajler, runtime i biblioteku anotacija:
- Runtime pruža skup primitiva koji podržavaju paralelno izvršavanje skripti.
- Biblioteka anotacija definira skup svojstava koja opisuju situacije u kojima je dozvoljena paralelizacija pojedinačnih POSIX i GNU Coreutils komandi.
- Kompajler u hodu analizira predloženi Shell skript u apstraktno sintaksno stablo (AST), razbija ga na fragmente pogodne za paralelno izvršavanje i na osnovu njih formira novu verziju skripte, čiji se dijelovi mogu izvršavati istovremeno. Informacije o komandama koje dozvoljavaju paralelizaciju preuzima kompajler iz biblioteke anotacija. U procesu generiranja paralelno pokrenute verzije skripte, dodatne konstrukcije iz Runtimea se ubacuju u kod.
Na primjer, skripta koja obrađuje dvije datoteke f1.md i f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | sortiraj | uniq | comm -13 dict.txt — > out cat out | wc -l | sed 's/$/ pogrešno napisane riječi!/' bi normalno obradio dva fajla uzastopno:
izvor: opennet.ru