The faber CLI
Faber build tool#
أداة faber CLI هي المدخل الأساسي لبناء شيفرة Faber وفحصها وتشغيلها
وتنسيقها واختبارها. تغلّف مترجم Radix في أداة تطوير سهلة الاستخدام.
الأوامر الأساسية#
| الأمر | الغرض |
|---|---|
faber build <path> | ترجمة حزمة إلى واجهة خلفية مستهدفة (الافتراضي: Rust) |
faber check <path> | التحقق من الأنواع دون إصدار شيفرة |
faber run <path> | بناء وتنفيذ |
faber test <path> | تشغيل مجموعات اختبار proba |
faber format <path> | تطبيق التنسيق المعياري |
faber explain <code> | شرح رمز تشخيصي |
faber emit <path> | إصدار المصدر بصيغة سطح مستهدف |
بناء حزمة#
faber build my-package/ -t rustالعلامة -t تختار هدف توليد الشيفرة. الأهداف المدعومة تشمل rust
(الافتراضي) و wasm و typescript و go.
التحقق بدون إصدار#
faber check my-package/تشغيل الواجهة الأمامية كاملة (تحليل معجمي ← تحليل نحوي ← التحقق من الأنواع ← خفض إلى MIR) دون إنتاج مخرجات. يُستخدم هذا في CI وفي إضافات المحررات.
تشغيل الاختبارات#
faber test my-package/ترجمة جميع مجموعات probandum في الحزمة إلى دوال #[test] في Rust
وتشغيلها عبر Cargo. تعيش الاختبارات المضمنة إلى جانب الشيفرة المصدرية —
لا حاجة لثنائي اختبار منفصل.
التنسيق#
faber format my-package/تطبيق منسّق Faber المعياري. يفرض المنسّق تخطيطًا متسقًا: إعلان واحد لكل سطر، وتباعد معياري، وسطوح كلمات مفتاحية موحّدة.
شرح التشخيصات#
faber explain SEM001طباعة شرح مقروء لأي رمز تشخيصي يمكن للمترجم إصداره. مفيد لتعلّم معنى الخطأ وكيفية إصلاحه.
In-process scripting#
بجانب مسار rustc المترجم، يدعم Faber التنفيذ التفسيري داخل العملية عبر مُنفّذ MIR.
الاستخدام#
faber run --interpret script.fabيشغّل هذا شيفرة Faber المصدرية داخل العملية بعد النصف الأمامي العادي من المترجم (التحليل حتى فحص الأنواع ثم تخفيض MIR)، دون استدعاء rustc أو إنشاء عملية بناء.
آلية العمل#
ينتج المترجم HIR محلّلاً وMIR محقّقاً وجدولاً محلولاً لدوال وقت التشغيل الجوهرية. يرسل منفّذ MIR كتل MIR مباشرة إلى مضيف، متجاوزاً دورة إصدار wasm وتهيئته:
Source → Lex → Parse → Collect → Resolve → Lower → Typecheck
↓
MIR lowering
↓
MIR stepper + Hostزمن الاستجابة#
يشغّل مسار البرمجة النصية نفس الواجهة الأمامية الخطية التي يستخدمها المسار المترجم، مضافاً إليها زمن المنفّذ المتناسب مع ما تنفّذه الشيفرة فعلياً:
| المرحلة | التكلفة |
|---|---|
| الواجهة الأمامية (شيفرة من 100 سطر) | ~0.6 ملي ثانية |
| تنفيذ MIR | متناسب مع الجمل المنفّذة |
لا يستدعي المنفّذ rustc أبداً ولا ينشئ عملية، لذا فإن بدء التشغيل سريع بما يكفي ليشبه شيفرة shell.
القيود#
- لا يدعم منفّذ MIR جميع مسارات الإدخال/الإخراج للمضيف التي يدعمها المسار المترجم — تبقى بعض مغلّفات
norma:* حصرية للمسار المترجم - المنفّذ هو مشغّل تشخيصي ومرجعي أصلي لـ MIR، وليس بيئة تشغيل إنتاجية للتطبيقات المنشورة
- يبقى تجميع الحزم عبر Cargo هو مسار المنتج الأساسي