O projeto PaSh, que desenvolve ferramentas para execução paralela de scripts shell, anunciou que está sob os auspícios da Linux Foundation, que fornecerá a infraestrutura e os serviços necessários para continuar o desenvolvimento. O código do projeto é distribuído sob licença MIT e inclui componentes em Python, Shell, C e OCaml.
PaSh inclui um compilador JIT, tempo de execução e biblioteca de anotações:
- O tempo de execução fornece um conjunto de primitivos para suportar a execução paralela de scripts.
- A biblioteca de anotações define um conjunto de propriedades que descrevem situações nas quais a paralelização de comandos POSIX e GNU Coreutils individuais é permitida.
- O compilador analisa instantaneamente o script Shell proposto em uma árvore de sintaxe abstrata (AST), divide-o em fragmentos adequados para execução paralela e, com base neles, forma uma nova versão do script, partes do qual podem ser executadas simultaneamente. As informações sobre comandos que permitem a paralelização são obtidas pelo compilador da biblioteca de anotações. No processo de geração de uma versão paralela do script, construções adicionais do Runtime são inseridas no código.
Por exemplo, um script que processa dois arquivos f1.md e f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | classificar | único | comm -13 dict.txt — > fora gato fora | wc -l | sed 's/$/ palavras com erros ortográficos!/' normalmente processaria dois arquivos sequencialmente:
Fonte: opennet.ru