Projektas „PaSh“, kuriantis įrankius lygiagrečiam apvalkalo scenarijų vykdymui, paskelbė, kad pereina į „Linux Foundation“ globą, kuris suteiks infrastruktūrą ir paslaugas, būtinas plėtrai tęsti. Projekto kodas platinamas pagal MIT licenciją ir apima Python, Shell, C ir OCaml komponentus.
PaSh apima JIT kompiliatorių, vykdymo laiką ir anotacijų biblioteką:
- Vykdymo laikas suteikia primityvų rinkinį, palaikantį lygiagretų scenarijų vykdymą.
- Anotacijų biblioteka apibrėžia ypatybių rinkinį, apibūdinantį situacijas, kai leidžiama lygiagrečiai atskirti POSIX ir GNU Coreutils komandas.
- Kompiliatorius iš karto išanalizuoja siūlomą Shell scenarijų į abstrakčią sintaksės medį (AST), suskaido jį į fragmentus, tinkamus lygiagrečiam vykdymui, ir pagal juos suformuoja naują scenarijaus versiją, kurios dalis galima vykdyti vienu metu. Informaciją apie komandas, kurios leidžia lygiagretinti, kompiliatorius paima iš anotacijų bibliotekos. Generuojant lygiagrečiai veikiančią scenarijaus versiją, į kodą įterpiamos papildomos „Runtime“ konstrukcijos.
Pavyzdžiui, scenarijus, apdorojantis du failus f1.md ir f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | rūšiuoti | unikalus | comm -13 dict.txt — > out cat out | wc -l | sed 's/$/ neteisingai parašyti žodžiai!/' paprastai apdoroja du failus paeiliui:
Šaltinis: opennet.ru