El projecte PaSh, que desenvolupa eines per a l'execució paral·lela d'scripts d'intèrpret d'ordres, ha anunciat que es mou sota els auspicis de la Fundació Linux, que proporcionarà la infraestructura i els serveis necessaris per continuar el desenvolupament. El codi del projecte es distribueix sota la llicència MIT i inclou components en Python, Shell, C i OCaml.
PaSh inclou un compilador JIT, un temps d'execució i una biblioteca d'anotacions:
- El temps d'execució proporciona un conjunt de primitives per suportar l'execució paral·lela d'scripts.
- La biblioteca d'anotacions defineix un conjunt de propietats que descriuen situacions en què es permet la paral·lelització d'ordres individuals de POSIX i GNU Coreutils.
- El compilador sobre la marxa analitza l'script Shell proposat en un arbre de sintaxi abstracta (AST), el divideix en fragments adequats per a l'execució paral·lela i, a partir d'ells, forma una nova versió de l'script, parts de la qual es poden executar simultàniament. La informació sobre les ordres que permeten la paral·lelització la pren el compilador de la biblioteca d'anotacions. En el procés de generació d'una versió d'execució paral·lela de l'script, s'insereixen construccions addicionals de Runtime al codi.
Per exemple, un script que processa dos fitxers f1.md i f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | ordenar | uniq | comm -13 dict.txt — > fora gat fora | wc -l | sed 's/$/ paraules mal escrites!/' normalment processaria dos fitxers seqüencialment:
Font: opennet.ru