پروژه PaSh که ابزارهایی را برای اجرای موازی اسکریپت های پوسته توسعه می دهد، اعلام کرده است که تحت نظارت بنیاد لینوکس در حال حرکت است که زیرساخت ها و خدمات لازم برای ادامه توسعه را فراهم می کند. کد پروژه تحت مجوز MIT توزیع شده است و شامل اجزایی در Python، Shell، C و OCaml می باشد.
PaSh شامل یک کامپایلر JIT، زمان اجرا و کتابخانه حاشیه نویسی است:
- Runtime مجموعه ای از اصول اولیه را برای پشتیبانی از اجرای موازی اسکریپت ها فراهم می کند.
- کتابخانه حاشیهنویسی مجموعهای از ویژگیها را تعریف میکند که موقعیتهایی را توصیف میکنند که در آن موازیسازی دستورات POSIX و Coreutils گنو مجاز است.
- کامپایلر در جریان اسکریپت Shell پیشنهادی را به یک درخت نحو انتزاعی (AST) تجزیه میکند، آن را به قطعات مناسب برای اجرای موازی میشکند و بر اساس آنها نسخه جدیدی از اسکریپت را تشکیل میدهد که بخشهایی از آن را میتوان به طور همزمان اجرا کرد. اطلاعات مربوط به دستوراتی که اجازه موازی سازی را می دهند توسط کامپایلر از کتابخانه حاشیه نویسی گرفته می شود. در فرآیند تولید یک نسخه موازی در حال اجرا از اسکریپت، ساختارهای اضافی از Runtime در کد درج میشوند.
برای مثال اسکریپتی که دو فایل f1.md و f2.md cat f1.md f2.md را پردازش می کند | tr AZ az | tr -cs A-Za-z '\n' | مرتب کردن | uniq | comm -13 dict.txt — > out cat out | wc -l | sed 's/$/ کلمات غلط املایی!/' معمولاً دو فایل را به ترتیب پردازش می کند:
منبع: opennet.ru