Proiectul PaSh, care dezvoltă instrumente pentru execuția paralelă a scripturilor shell, a anunțat că se mută sub auspiciile Fundației Linux, care va oferi infrastructura și serviciile necesare pentru a continua dezvoltarea. Codul proiectului este distribuit sub licența MIT și include componente în Python, Shell, C și OCaml.
PaSh include un compilator JIT, runtime și bibliotecă de adnotări:
- Runtime oferă un set de primitive pentru a sprijini execuția paralelă a scripturilor.
- Biblioteca de adnotări definește un set de proprietăți care descriu situații în care este permisă paralelizarea comenzilor individuale POSIX și GNU Coreutils.
- Compilatorul analizează din mers scriptul Shell propus într-un arbore de sintaxă abstractă (AST), îl descompune în fragmente potrivite pentru execuție paralelă și, pe baza lor, formează o nouă versiune a scriptului, părți din care pot fi executate simultan. Informațiile despre comenzile care permit paralelizarea sunt preluate de compilator din biblioteca de adnotări. În procesul de generare a unei versiuni de rulare paralelă a scriptului, în cod sunt inserate constructe suplimentare din Runtime.
De exemplu, un script care procesează două fișiere f1.md și f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | sortare | unic | comm -13 dict.txt — > out cat out | wc -l | sed 's/$/ cuvinte greşite!/' ar procesa în mod normal două fişiere secvenţial:
Sursa: opennet.ru