PaSh projekt, mis arendab paralleelse shell-skripti täitmise tööriistu, kuulutas välja ülemineku Linux Foundation'i organatsiooni alla, mis pakub vajalikku infrastruktuuri ja teenuseid arenduse jätkamiseks. Projekti kood on jagatud MIT litsentsi alusel ja sisaldab komponente Pythonis, Shellis, C-s ja OCamlis.
PaSh sisaldab JIT-kompilaatorit, tööaega ja annotatsioonide raamatukogu:
- Tööaeg pakub primitiivide komplekti paralleelse skriptide täitmise toetamiseks.
- Annotatsioonide raamatukogu määratleb omaduste kogumi, mis kirjeldab olukordi, kus lubatakse POSIX ja GNU Coreutils'i üksikute käskude paralelleerimist.
- Kompilaator komponeerib ette antud shell-skripti abstraktseks süntaksipuuks (AST), jagab selle osadeks, mis sobivad paralleelselt täitmiseks, ja koostab nende põhjal uue skripti, mille osad saavad samal ajal töötada. Käskude teave, mis võimaldab paralelleerimist, saadakse kompilaatori poolt annotatsioonide raamatukogust. Paralleelselt täidetava skripti genereerimise protsessi käigus lisatakse koodi täiendavaid struktuure tööajast.

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/$/ vale sõna!/’ tavatingimustes töötleb kahte faili jadamisi:


Allikas: opennet.ru
