Le projet PaSh, qui développe des outils pour l'exécution parallèle de scripts shell, a annoncé son passage sous l'égide de la Linux Foundation, qui fournira l'infrastructure et les services nécessaires à la poursuite du développement. Le code du projet est distribué sous la licence MIT et comprend des composants en Python, Shell, C et OCaml.
PaSh inclut un compilateur JIT, un runtime et une bibliothèque d'annotations :
- Le runtime fournit un ensemble de primitives pour soutenir l'exécution parallèle des scripts.
- La bibliothèque d'annotations définit un ensemble de propriétés décrivant les situations dans lesquelles le parallélisme de certaines commandes POSIX et GNU Coreutils est autorisé.
- Le compilateur à la volée analyse le script shell proposé dans un arbre syntaxique abstrait (AST), le divise en fragments appropriés pour une exécution parallèle, et génère une nouvelle version du script, dont les parties peuvent être exécutées simultanément. Les informations sur les commandes autorisant le parallélisme sont extraites du compilateur à partir de la bibliothèque d'annotations. Pendant le processus de génération de la version du script pouvant s'exécuter en parallèle, des constructions supplémentaires du runtime sont intégrées dans le code.

Par exemple, un script qui traite deux fichiers f1.md et 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/$/ mots mal orthographiés !/’ traitera normalement deux fichiers de manière séquentielle :


Source : opennet.ru
