Projekt PaSh, rozwijający narzędzia do równoległego wykonania skryptów shell, ogłosił przejście pod patronat organizacji Linux Foundation, która zapewni infrastrukturę i usługi niezbędne do kontynuacji rozwoju. Kod projektu jest rozpowszechniany na licencji MIT i obejmuje komponenty napisane w językach Python, Shell, C oraz OCaml.
PaSh zawiera kompilator JIT, środowisko wykonawcze oraz bibliotekę adnotacji:
- Środowisko wykonawcze dostarcza zestaw prymitywów do wspierania równoległego wykonania skryptów.
- Biblioteka adnotacji definiuje zestaw właściwości, które opisują sytuacje, w których dozwolone jest równoległe wykonywanie poszczególnych poleceń POSIX i GNU Coreutils.
- Kompilator na bieżąco analizuje proponowany skrypt Shell i tworzy abstrakcyjne drzewo składniowe (AST), dzieli je na fragmenty nadające się do równoległego wykonania i na ich podstawie tworzy nową wersję skryptu, której fragmenty mogą być wykonywane jednocześnie. Informacje o poleceniach, które mogą być równolegle wykonywane, są pobierane przez kompilator z biblioteki adnotacji. W trakcie generowania równoległej wersji skryptu dodatkowe konstrukcje z środowiska wykonawczego są wstawiane do kodu.

Na przykład skrypt, który przetwarza dwa pliki f1.md i 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\/\$\/ mispelled words!\/’ w normalnych warunkach przetworzy dwa pliki w kolejności:


Źródło: opennet.ru
