Das Projekt PaSh, das Werkzeuge fĂŒr die parallele AusfĂŒhrung von Shell-Skripten entwickelt, gab bekannt, dass es unter den Schutz der Organisation Linux Foundation wechselt, die die Infrastruktur und Dienstleistungen bereitstellen wird, die fĂŒr die Fortsetzung der Entwicklung erforderlich sind. Der Projektcode wird unter der MIT-Lizenz verbreitet und umfasst Komponenten in den Sprachen Python, Shell, C und OCaml.
PaSh umfasst einen JIT-Compiler, eine Laufzeitumgebung und eine Annotationsbibliothek:
- Die Laufzeitumgebung bietet eine Sammlung von Primitiven zur UnterstĂŒtzung der parallelen AusfĂŒhrung von Skripten.
- Die Annotationsbibliothek definiert eine Sammlung von Eigenschaften, die die Situationen beschreiben, in denen die Parallelisierung einzelner POSIX- und GNU Coreutils-Befehle zulÀssig ist.
- Der Just-in-Time-Compiler analysiert das vorgeschlagene Shell-Skript in einen Abstract Syntax Tree (AST), zerlegt es in Fragmente, die fĂŒr die parallele AusfĂŒhrung geeignet sind, und erstellt basierend darauf eine neue Version des Skripts, deren Teile gleichzeitig ausgefĂŒhrt werden können. Informationen ĂŒber Befehle, die eine Parallelisierung zulassen, werden vom Compiler aus der Annotationsbibliothek entnommen. WĂ€hrend der Erstellung der parallel ausfĂŒhrbaren Skriptversion werden zusĂ€tzliche Konstrukte aus der Laufzeitumgebung in den Code eingefĂŒgt.

Zum Beispiel verarbeitet ein Skript, das zwei Dateien f1.md und f2.md bearbeitet 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\/\$\/ misspelled words!\/â unter normalen Bedingungen die beiden Dateien nacheinander:


Quelle: opennet.ru
