Il progetto PaSh, che sviluppa strumenti per l'esecuzione parallela di script shell, ha annunciato il suo passaggio sotto l'ombrello della Linux Foundation, che fornirà l'infrastruttura e i servizi necessari per continuare lo sviluppo. Il codice del progetto è distribuito sotto licenza MIT e include componenti in linguaggi Python, Shell, C e OCaml.
PaSh include un compilatore JIT, runtime e una libreria di annotazioni:
- Il runtime offre un insieme di primitivi per supportare l'esecuzione parallela degli script.
- La libreria di annotazioni definisce un insieme di proprietà che descrivono le situazioni in cui è consentita la parallelizzazione di singoli comandi POSIX e GNU Coreutils.
- Il compilatore a runtime analizza lo script shell proposto in un albero sintattico astratto (AST), lo suddivide in frammenti adatti all'esecuzione parallela e crea una nuova versione dello script, le cui parti possono essere eseguite contemporaneamente. Le informazioni sui comandi che consentono la parallelizzazione vengono ottenute dal compilatore dalla libreria di annotazioni. Durante la generazione della versione parallelizzata dello script, nel codice vengono inserite strutture aggiuntive dal runtime.

Ad esempio, uno script che elabora due file f1.md e 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/$/ parole errate!/' in condizioni normali elaborerebbe i due file in modo sequenziale:


Fonte: opennet.ru
