Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

التشغيل والترجمة: sad-run وsad-build

المفسّر sad-run

ينفّذ ملفّ مباشرةً — أسرع طريق أثناء التطوير:

sad-run برنامجي.ص

أوضاع الذاكرة الموحَّدة

الرايةالمرادف العربيّالمعنى
--gcجامع قمامة، فحوص الملكيّة معطَّلة (الافتراضيّ)
--prod--إنتاجملكيّة صارمة بلا جامع قمامة
--learn--تعلميشرح انتهاكات الملكيّة دون إيقاف — مناسب للتعلّم
--auto--تلقائياختيار تلقائيّ بحسب البيئة
--gc=<strategy>استراتيجيّة الجامع: tracing أو refcount أو none
--ملكية=<level>مستوى الملكيّة: disabled/warnings/strict/ultra
--no-std--نواةوضع بلا مكتبة قياسيّة (freestanding)

رايات التحليل والتشخيص

الرايةالمرادف العربيّالمعنى
--ownership--ملكيةتفعيل نظام الملكيّة
--type-check--فحص-أنواعفحص الأنواع
--strict-types--أنواع-صارمةفحص أنواع صارم
--security--أمانفحوص الأمان
--profile--تنميطتنميط الأداء (مع --profile-format=/--profile-output=/--profile-top=)
--hot-reload--مراقبةإعادة تحميل ساخنة عند تغيّر الملفّ
--docs--وثّقاستخراج توثيق ## (مع --docs-out=/--docs-project=/--docs-format=)
--explain[=<مستوى>]شرح الأخطاء: brief/normal/detailed/teacher (الافتراضيّ detailed)
--lang=<لغة>لغة الرسائل: ar أو en أو both
--debug-serverخادم تنقيح بواجهة DAP (للمحرّرات)

المترجم sad-build

يترجم إلى ملفّ تنفيذيّ أصليّ عبر LLVM — لا يحتاج الناتجُ وقتَ تشغيل خارجيًّا يُثبَّت:

sad-build برنامجي.ص -o برنامجي        # ترجمة وربط
sad-build برنامجي.ص -O3 -o برنامجي    # بأقصى تحسين
sad-build برنامجي.ص -c -o جزء.o       # ترجمة فقط (بلا ربط)
sad-build *.o -o برنامجي              # ربط ملفّات كائنيّة

أهمّ الخيارات

المجموعةالخيارات
الإخراج-o <ملفّ> · -c · -S (تجميعيّ) · --emit-llvm · --emit-bc
التحسين-O0-O3 (الافتراضيّ -O2) · -Os (الحجم) · --lto/--lto=full · --lto=thin
التنقيح-g · --emit-ast · --emit-sir · --time-passes
الأخطاء--explain[=brief|normal|detailed|teacher] (الافتراضيّ detailed) · --lang=ar|en|both
الربط-L<مسار> · -l<مكتبة> · --static · -T<سكربت-ربط>
الهدف--target=<ثلاثيّة> · --freestanding (بلا نظام تشغيل)

استخراج التوثيق

المترجم يستخرج تعليقات التوثيق ## إلى Markdown أو JSON أو HTML:

sad-build --docs برنامجي.ص                       # إلى stdout
sad-build --وثّق --docs-out=دليل.md برنامجي.ص     # إلى ملفّ
sad-build --docs-project=مشروعي/ --docs-format=html   # مشروع كامل

وضع الأنظمة (freestanding)

لبرمجة النوى والعتاد بلا مكتبة قياسيّة:

sad-build --freestanding --no-main --abort-on-panic \
          --linker-script=kernel.ld نواتي.ص -o نواتي.elf

مع --entry-point=<اسم> لنقطة دخول مخصّصة و--allow-alloc للسماح بالتخصيص الديناميكيّ. والراية --no-std مكافئة تمامًا لـ--freestanding في المترجم.