El proyecto PaSh, que desarrolla herramientas para la ejecución paralela de scripts de shell, ha anunciado que avanza bajo los auspicios de la Fundación Linux, que proporcionará la infraestructura y los servicios necesarios para continuar con el desarrollo. El código del proyecto se distribuye bajo licencia MIT e incluye componentes en Python, Shell, C y OCaml.
PaSh incluye un compilador JIT, tiempo de ejecución y biblioteca de anotaciones:
- Runtime proporciona un conjunto de primitivas para admitir la ejecución paralela de scripts.
- La biblioteca de anotaciones define un conjunto de propiedades que describen situaciones en las que se permite la paralelización de comandos POSIX y GNU Coreutils individuales.
- El compilador analiza sobre la marcha el script de Shell propuesto en un árbol de sintaxis abstracta (AST), lo divide en fragmentos adecuados para la ejecución paralela y, basándose en ellos, forma una nueva versión del script, cuyas partes se pueden ejecutar simultáneamente. El compilador toma la información sobre los comandos que permiten la paralelización de la biblioteca de anotaciones. En el proceso de generar una versión del script que se ejecuta en paralelo, se insertan construcciones adicionales de Runtime en el código.
Por ejemplo, un script que procesa dos archivos f1.md y f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | ordenar | único | comm -13 dict.txt — > fuera gato fuera | baño -l | sed 's/$/ palabras mal escritas!/' normalmente procesaría dos archivos secuencialmente:
Fuente: opennet.ru