العرضar

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 هو مسار المنتج الأساسي