Proiectul PaSh, care dezvoltă instrumente pentru executarea paralelă a scripturilor shell, a anunțat că a trecut sub protecția organizației Linux Foundation, care va oferi infrastructura și serviciile necesare pentru continuarea dezvoltării. Codul proiectului este distribuit sub licența MIT și include componente în limbajele Python, Shell, C și OCaml.
PaSh include un compilator JIT, un runtime și o bibliotecă de adnotări:
- Runtime-ul oferă un set de primitive pentru sprijinul executării paralele a scripturilor.
- Biblioteca de adnotări definește un set de proprietăți care descriu situațiile în care se permite paralelizarea comenzilor individuale POSIX și GNU Coreutils.
- Compilatorul pe parcurs analizează scriptul Shell propus într-un arbore sintactic abstract (AST), îl împarte în fragmente potrivite pentru execuție paralelă și formează pe baza acestora o nouă variantă a scriptului, părțile căruia pot fi executate simultan. Informațiile despre comenzile care permit paralelizarea sunt preluate de compilator din biblioteca de adnotări. În timpul generării variantei de script care se execută în paralel, în cod sunt introduse structuri suplimentare din Runtime.

De exemplu, un script care procesează două fișiere 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/$/ cuvinte greșite!/’ în condiții normale va procesa cele două fișiere secvențial:


Sursa: opennet.ro
