O projeto PaSh, que desenvolve ferramentas para execução paralela de scripts shell, anunciou a sua adesão à Linux Foundation, que fornecerá a infraestrutura e os serviços necessários para continuar o desenvolvimento. O código do projeto é distribuído sob a licença MIT e inclui componentes em Python, Shell, C e OCaml.
PaSh inclui um compilador JIT, runtime e uma biblioteca de anotações:
- O runtime fornece um conjunto de primitivas para suporte à execução paralela de scripts.
- A biblioteca de anotações define um conjunto de propriedades que descrevem as situações em que é permitido paralelizar comandos individuais do POSIX e do GNU Coreutils.
- O compilador em tempo real analisa o script shell fornecido em uma árvore sintática abstrata (AST), divide-o em fragmentos adequados para execução paralela e cria uma nova versão do script, cujas partes podem ser executadas simultaneamente. As informações sobre os comandos que podem ser paralelizados são obtidas pelo compilador da biblioteca de anotações. Durante o processo de geração da versão paralela do script, são inseridas construções adicionais do runtime no código.

Por exemplo, um script que processa dois arquivos f1.md e 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/$/ palavras mal soletradas!/' normalmente processaria os dois arquivos sequencialmente:


Fonte: opennet.ru
