Shell skriptlərinin paralel icrası üçün alətlər hazırlayan PaSh layihəsi, inkişafı davam etdirmək üçün lazım olan infrastruktur və xidmətləri təmin edəcək Linux Fondunun himayəsi altında hərəkət etdiyini açıqladı. Layihə kodu MIT lisenziyası altında paylanır və Python, Shell, C və OCaml-da komponentləri ehtiva edir.
PaSh-a JIT tərtibçisi, işləmə vaxtı və annotasiya kitabxanası daxildir:
- Runtime skriptlərin paralel icrasını dəstəkləmək üçün bir sıra primitivləri təmin edir.
- Annotasiya kitabxanası fərdi POSIX və GNU Coreutils əmrlərinin paralelləşdirilməsinə icazə verilən situasiyaları təsvir edən xüsusiyyətlər toplusunu müəyyən edir.
- Kompilyator tez bir zamanda təklif olunan Shell skriptini abstrakt sintaksis ağacında (AST) təhlil edir, onu paralel icra üçün uyğun olan fraqmentlərə ayırır və onların əsasında hissələri eyni vaxtda yerinə yetirilə bilən skriptin yeni versiyasını formalaşdırır. Paralelləşdirməyə icazə verən əmrlər haqqında məlumat kompilyator tərəfindən annotasiya kitabxanasından götürülür. Skriptin paralel işləyən versiyasının yaradılması prosesində Runtime-dan əlavə konstruksiyalar koda daxil edilir.
Məsələn, iki faylı emal edən skript f1.md və 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/$/ səhv yazılmış sözlər!/' adətən iki faylı ardıcıllıqla emal edir:
Mənbə: opennet.ru