Shell скрипттерин параллелдүү аткаруу үчүн куралдарды иштеп чыккан PaSh долбоору өнүгүүнү улантуу үчүн зарыл болгон инфраструктураны жана кызматтарды камсыздай турган Linux Фондунун колдоосу астында өтүп жатканын жарыялады. Долбоордун коду MIT лицензиясы боюнча таратылат жана Python, Shell, C жана OCaml компоненттерин камтыйт.
PaSh JIT компиляторун, иштөө убактысын жана аннотация китепканасын камтыйт:
- Runtime скрипттердин параллелдүү аткарылышын колдоо үчүн примитивдердин топтомун камсыз кылат.
- Аннотациялар китепканасы жеке POSIX жана GNU Coreutils буйруктарын параллелдештирүүгө уруксат берилген жагдайларды сүрөттөгөн касиеттердин жыйындысын аныктайт.
- Компилятор тез арада сунушталган Shell сценарийин абстракттуу синтаксис дарагына (AST) талдап, аны параллелдүү аткарууга ылайыктуу фрагменттерге бөлөт жана алардын негизинде скрипттин жаңы версиясын түзөт, анын бөлүктөрү бир эле учурда аткарылышы мүмкүн. Параллелдештирүү мүмкүнчүлүгүн берген командалар жөнүндө маалымат компилятор тарабынан аннотациялар китепканасынан алынат. Скрипттин параллелдүү иштеп жаткан версиясын түзүү процессинде кодго Runtime кошумча конструкциялары киргизилет.
Мисалы, эки файлды иштеткен скрипт f1.md жана f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | сорт | uniq | comm -13 dict.txt — > чыгып cat out | wc -l | sed 's/$/ туура эмес жазылган сөздөр!/' адатта эки файлды ырааттуу иштетет:
Source: opennet.ru