Das Projekt PaSh, das Werkzeuge für die parallele Ausführung von Shell-Skripten entwickelt, hat die Unterstützung der Linux Foundation bekannt gegeben. Diese sorgt für die notwendige Infrastruktur und Dienstleistungen, um die Weiterentwicklung fortzusetzen. Der Code des Projekts wird unter der MIT-Lizenz veröffentlicht und umfasst Komponenten in den Programmiersprachen Python, Shell, C und OCaml.
PaSh beinhaltet einen JIT-Compiler, eine Runtime und eine Annotationsbibliothek:
- Die Runtime bietet eine Reihe von Primitiven zur Unterstützung der parallelen Ausführung von Skripten.
- Die Annotationsbibliothek definiert eine Reihe von Eigenschaften, die die Situationen beschreiben, in denen die Parallelisierung einzelner POSIX- und GNU Coreutils-Befehle erlaubt ist.
- Der Compiler analysiert das bereitgestellte Shell-Skript zur Laufzeit in einen abstrakten Syntaxbaum (AST), zerlegt es in Segmente, die für die parallele Ausführung geeignet sind, und erstellt eine neue Version des Skripts, deren Teile gleichzeitig ausgeführt werden können. Die Informationen über die Befehle, die Parallelisierung erlauben, stammen aus einer Annotierungsbibliothek. Während der Generierung der parallel ausführbaren Skriptversion werden zusätzliche Konstrukte aus der Runtime in den Code eingefügt.

Zum Beispiel wird ein Skript, das zwei Dateien f1.md und f2.md verarbeitet, normalerweise zwei Dateien nacheinander abarbeiten: 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/$/ falsch geschriebene Wörter!/’.


Quelle: opennet.ru
