PaSh projekt, mis arendab tööriistu shell-skriptide paralleelseks täitmiseks, kuulutas välja ülemineku Linux Foundationi kaitse alla, mis pakub vajalikku infrastruktuuri ja teenuseid arenduse jätkamiseks. Projekti kood levitatakse MIT litsentsi alusel ja see hõlmab komponente, mis on kirjutatud Python, Shell, C ja OCaml keeles.
PaSh sisaldab JIT-kompilaatorit, runtime'i ja annotatsioonide raamatukogu:
- Runtime pakub primitiivide kogumit, mis toetab skriptide paralleelset täitmist.
- Annotatsioonide raamatukogu määratleb omaduste kogumi, mis kirjeldab olukordi, kus on lubatud POSIX ja GNU Coreutils'i konkreetsete käskude paralleelne töötlemine.
- JIT-kompilaator analüüsib etteantud shell-skripti abstraktseks süntakspuu (AST), jagab selle paralleelselt täitmiseks sobivateks fragmentideks ja loob nende põhjal uue skripti versiooni, mille osi saab täita samaaegselt. Teave käskude kohta, mille paralleelne töötlemine on lubatud, saadakse kompilaatori poolt annotatsioonide raamatukogust. Paralleelselt töötava skripti genereerimise protsessis lisatakse koodile täiendavad konstruktsioonid runtime'ist.

Näiteks skript, mis töötleb kahte faili f1.md ja 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!\/’ normaalses olukorras töötleb kahte faili järjestikku:


Allikas: opennet.ru
