Projekt PaSh, który rozwija narzędzia do równoległego wykonywania skryptów powłoki, ogłosił, że przechodzi pod auspicjami Linux Foundation, która zapewni infrastrukturę i usługi niezbędne do dalszego rozwoju. Kod projektu jest rozpowszechniany na licencji MIT i zawiera komponenty w językach Python, Shell, C i OCaml.
PaSh zawiera kompilator JIT, środowisko wykonawcze i bibliotekę adnotacji:
- Runtime zapewnia zestaw prymitywów do obsługi równoległego wykonywania skryptów.
- Biblioteka adnotacji definiuje zestaw właściwości opisujących sytuacje, w których dozwolona jest równoległość poszczególnych poleceń POSIX i GNU Coreutils.
- Kompilator na bieżąco analizuje zaproponowany skrypt Shell w abstrakcyjne drzewo składni (AST), dzieli go na fragmenty nadające się do równoległego wykonania i na ich podstawie tworzy nową wersję skryptu, której części można wykonywać jednocześnie. Informacje o poleceniach umożliwiających równoległość kompilator pobiera z biblioteki adnotacji. W procesie generowania równolegle działającej wersji skryptu do kodu wstawiane są dodatkowe konstrukcje z Runtime.
Na przykład skrypt przetwarzający dwa pliki f1.md i f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | sortuj | wyjątkowy | comm -13 dict.txt — > out cat out | wc -l | sed 's/$/ błędnie napisane słowa!/' normalnie przetwarza dwa pliki po kolei:
Źródło: opennet.ru