Il-proġett PaSh, li jiżviluppa għodod għall-eżekuzzjoni parallela ta 'skripts shell, ħabbar li qed jimxi taħt l-awspiċi tal-Fondazzjoni Linux, li se tipprovdi l-infrastruttura u s-servizzi meħtieġa biex ikompli l-iżvilupp. Il-kodiċi tal-proġett huwa mqassam taħt il-liċenzja MIT u jinkludi komponenti f'Python, Shell, C u OCaml.
PaSh jinkludi kompilatur JIT, runtime u librerija ta' annotazzjonijiet:
- Runtime jipprovdi sett ta 'primittivi biex jappoġġjaw eżekuzzjoni parallela ta' skripts.
- Il-librerija ta' annotazzjoni tiddefinixxi sett ta' proprjetajiet li jiddeskrivu sitwazzjonijiet li fihom hija permessa l-parallelizzazzjoni ta' kmandi individwali POSIX u GNU Coreutils.
- Il-kompilatur fuq il-fly janalizza l-iskrittura Shell proposta f'siġra tas-sintassi astratta (AST), jaqsamha fi frammenti adattati għall-eżekuzzjoni parallela, u fuq il-bażi tagħhom jifforma verżjoni ġdida tal-iskrittura, li partijiet minnha jistgħu jiġu esegwiti simultanjament. L-informazzjoni dwar il-kmandi li jippermettu l-parallelizzazzjoni tittieħed mill-kompilatur mil-librerija tal-annotazzjoni. Fil-proċess tal-ġenerazzjoni ta 'verżjoni parallela tal-iskript, kostruzzjonijiet addizzjonali minn Runtime jiddaħħlu fil-kodiċi.
Pereżempju, skript li jipproċessa żewġ fajls f1.md u f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | sort | uniq | comm -13 dict.txt — > out cat out | wc -l | sed 's/$/ kliem imfissra ħażin!/' normalment jipproċessa żewġ fajls b'mod sekwenzjali:
Sors: opennet.ru