Projektet PaSh, som utvecklar verktyg för parallell körning av shell-skript, har meddelat att det övergår under beskydd av Linux Foundation, som kommer att tillhandahålla den infrastruktur och de tjänster som behövs för att fortsätta utvecklingen. Koden för projektet distribueras under MIT-licensen och inkluderar komponenter på språken Python, Shell, C och OCaml.
PaSh inkluderar en JIT-kompilator, runtime och ett annoteringsbibliotek:
- Runtime tillhandahåller en uppsättning primitiv för att stödja parallell körning av skript.
- Annoteringsbiblioteket definierar en uppsättning egenskaper som beskriver situationer där parallellisering av individuella kommandon från POSIX och GNU Coreutils är tillåten.
- Kompilatorn analyserar det föreslagna shell-skriptet i ett abstrakt syntaxträd (AST), bryter ner det i fragment som är lämpliga för parallell körning och bildar en ny version av skriptet där delarna kan köras samtidigt. Information om kommandon som tillåter parallellisering hämtas av kompileraren från annoteringsbiblioteket. Under genereringen av den parallellt körbara versionen av skriptet läggs ytterligare konstruktioner från Runtime in i koden.

Till exempel kommer ett skript som behandlar två filer f1.md och 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/$/ felstavade ord!/’ under normala omständigheter att behandla två filer sekventiellt:


Källa: opennet.ru
