نظام البناء العربي الرسمي للغة باء (Baa).
The Arabic-first build system for Baa.
- آخر تحديث: 2026-07-18
- إصدار تكوين:
0.1.0. - خط أساس باء في مساحة Eco:
0.6.0؛ runner init/check/build/run/test/clean/targets وخطة البناء وبيان v1 واعتماديات المسار وGit المثبتة يمر بهذا المصرّف على Windows وLinux. - اتجاه المشروع: استبدال سير عمل
CMake/Makeلمشاريع Baa بواجهة أبسط (تكوين ...). - وضع تكوين: parser متوافق مع صيغة 0.1 ومع
takween-manifest-v1متعدد الأهداف؛ check/build/run/test/clean يستخدم Process API مهيكلة من Baa بلا shell، مع بناء incremental واعتماديات مسار/Git واكتشاف هدف المضيف عبرtarget-info-v1. يفصلtakween-build-plan-v1الخطة الحتمية المملوكة عن التنفيذ، ويعرضها الأمرتكوين خطة --جسوندون تشغيل المصرّف. يدعم v1 اعتماديات أهداف typed بالحقليعتمد_على: تُرتب المكتبات حتميا قبل الهدف وتدخل مصادرها الخطة، مع كشف الدورات ومسار خطأ عربي كامل. ويثبت نمطيتطوير/إصدارtyped، واختيار--نمطالعربي، وملكية profile داخل خطة البناء، مع السماح بأنماط عربية مخصصة. تقبل خطة البناء جذور.baaو.نظم، وتختار نَظْم افتراضيا من الأمر العربينظمعلىPATH؛ الحقل العربيالمجمع = "غاز"هو الرجوع الصريح. - الاعتمادات: لا توجد
stdlibمحلية داخل Takween؛ يتم الاعتماد علىbaalib.baahdمن تثبيت Baa. - الحزم: تصميم محلي/حتمي أولا؛ لا يوجد سجل حزم عام في 0.1.
- واجهة أوامر عربية مباشرة لمشاريع Baa.
- ملف 0.1 بسيط أو بيان v1 typed بأقسام وقيم نص/صحيح/منطقي/مصفوفة نصوص.
- نهج صارم في التحقق المبكر من الأخطاء.
- تثبيت سهل للمستخدم النهائي (Installer + PATH) على ويندوز.
- شغّل مثبت Takween (
takween-setup-<version>.exe). - فعّل خيار إضافة Takween إلى PATH أثناء التثبيت.
- تأكد بعد التثبيت:
تكوين --مساعدة
baa --versionتكوين يعتمد على وجود
baaفي PATH وعلى عقد--target-info=jsonمن Baa.
نستخدم Inno Setup Compiler لبناء مثبت ويندوز:
powershell -ExecutionPolicy Bypass -File .\scripts\build_installer.ps1 -Version 0.1.0لبناء binary مباشرة بمصرّف محدد وقابل لإعادة الإنتاج:
.\scripts\build_takween.ps1 -Version 0.1.0 -BaaPath C:\path\to\baa.exe -BaaStdlibPath C:\path\to\stdlib- الملف الناتج:
dist\installer\takween-setup-<version>.exe - إذا كان
ISCC.exeخارج المسار الافتراضي، مرره صراحة عبر-IsccPath.
تكوين تهيئة # init
تكوين فحص # check, diagnostics-json-v1
تكوين خطة --جسون # deterministic takween-build-plan-v1
تكوين خطة --جسون --نمط إصدار # release profile without Latin syntax
تكوين بناء # build
تكوين تشغيل # run
تكوين اختبار # test: تشغيل كل أهداف الاختبار
تكوين أهداف --جسون # targets: takween-targets-v1
تكوين بناء --ملف_أحداث أحداث.jsonl # takween-build-events-v1 دون تلويث stdout
تكوين تنظيف # clean
تكوين --إصدار # versionيوجد alias متوافق:
takween.
يبني تكوين بناء مباشرة إلى مجلد المخرجات، ويستخدم كاش Baa incremental تحت
المخرج/.takween-cache، ويكتب المخرج/build-manifest.json. الحقول الحرة مثل
أعلام_إضافية مرفوضة تنفيذيا حتى تستبدل بخيارات typed.
بعد build ناجح يكتب تكوين أيضا المخرج/build-cache.json بعقد
takween-content-cache-v1. المفتاح SHA-256 يجمع خطة البناء وإصدار Baa والهدف
والأعلام وتجزئات المصادر والرؤوس وتكوين.قفل وبصمة نظم الكاملة. يعيد Baa
استخدام كائنات مصادر باء ومصادر .نظم المباشرة فقط عندما تتطابق
nazm-api-v1 وإصدار نظم وهضم قدراته؛ يبقى الربط منفذا ومعلنا. غياب البصمة أو
فسادها يفشل الإيصال بدلا من ادعاء إصابة زائفة. تفاصيل العقد في
مستندات/CONTENT_CACHE_V1.md.
يعرض تكوين خطة --جسون [اسم_هدف] نفس argv المملوكة التي سيستهلكها البناء من
دون إنشاء مجلد المخرج أو تشغيل Baa. المخطط نقي بعد اكتمال الاكتشاف وحل
الاعتماديات، ويثبت --assembler=nazm عندما لا يختار البيان مجمعا أو يكتب
المجمع = "نظم"، ويثبت --assembler=gas فقط عند المجمع = "غاز".
ويعرض كذلك working_directory وsource_files وinclude_paths كحقول مهيكلة
تستهلكها أدوات مثل Baa-LSP دون تحليل البيان أو تفكيك argv.
النمط الافتراضي تطوير يثبت -O1 --verify، وإصدار يثبت -O2 --verify.
يمكن للبيان تخصيصهما أو إضافة [الأنماط.<اسم_عربي>] بحقل التحسين typed
والتحقق الاختياري، ثم يختار المستخدم --نمط <الاسم> في
خطة/بناء/فحص/تشغيل/اختبار. تسجل الخطة الاسم والقيم المحلولة ولا تستعيرها من parser.
تدعم [مساحة_العمل] أعضاء حزم explicit. يعرض تكوين مساحة --جسون عقد
takween-workspace-v1، ويبني/يختبر --حزمة <اسم> أو --كل_الحزم في cwd
منفصل لكل عضو مع تمرير --نمط و--مقفل. globs والمساحات المتداخلة مرفوضة
صراحة. انظر مستندات/WORKSPACE_V1.md.
يُكتشف v1 عندما يبدأ أول سطر فعال بقسم [ ... ]. يدعم التنفيذ الحالي عدة أهداف
تنفيذي/اختبار/مكتبة، واختيار الهدف في build/check/run، وتشغيل هدف اختبار واحد أو
كل أهداف الاختبار. الحقل يعتمد_على = ["مكتبة"] يبني DAG أهداف حتميا ويضم
مصادر المكتبات قبل الهدف المختار؛ لا يقبل edge إلى تنفيذي/اختبار ولا دورة.
يدعم كذلك بناء/نمطا typed واعتماديات المسار وGit المتعدية. تتطلب
اعتمادية Git حقلي git وcommit مثبتا من 40 أو 64 خانة hex صغيرة؛ لا تقبل branch
أو tag. يكتب check/build/run ملف تكوين.قفل الحتمي وفق takween-lock-v1، ويعيد
استخدام checkout معنون بالـ commit تحت .takween/packages. تحل اعتماديات الإصدار
قيود SemVer من فهرس محلي، وتفك takween-archive-v1 الآمن إلى cache معنون بـSHA-256.
ينفذ تحقق --بدون_شبكة التحقق الصارم بلا جلب، وينسخ توريد الحزم حتميا، ويسجل
القفل قيد Baa والهدف والقدرات والاختيار الدقيق. أسماء المشاريع والحزم والاعتماديات
عربية فقط. نوع المكتبة ظاهر في الفهرس لكنه غير قابل للبناء مستقلا بعد؛ وتبقى globs
والسجل العام والنشر مراحل لاحقة. فحص/check يبقى عقد Baa JSON لمصادر .baa؛
وجود جذر .نظم يعيد حاليا غير مدعوم 3 حتى يوفر نظم عقد تشخيصات JSON.
[الاعتماديات.صلة]
git = "https://example.invalid/sila.git"
commit = "0123456789abcdef0123456789abcdef01234567"
مثال هدف يمرر مصادر باء المولدة ومصادر نظم المباشرة إلى نظم:
[الأهداف.تطبيقي]
النوع = "تنفيذي"
المدخل = "المصدر/الرئيسية.baa"
المصادر = ["المصدر/مساعدة.نظم"]
يعتمد_على = ["هندسة"]
[الأهداف.هندسة]
النوع = "مكتبة"
المدخل = "المصدر/هندسة.baa"
[البناء]
المخرج = "بناء"
نَظْم هو الافتراضي؛ أضف المجمع = "غاز" فقط لبناء رجوعي مقصود.
الاسم: تطبيقي_الأول
الإصدار: 1.0.0
النوع: تنفيذي
المصدر: المصدر/
المخرج: بناء/
ملفات: الرئيسية.baa
التحسين: ١
- خارطة الطريق
- صيغة الملف
- عقد CLI
- عقد أحداث البناء v1
- المعمارية
- المساهمة
- الاختبارات
- الإصدارات
- سجل التغييرات
- صيغة البيان v1 وحالة التنفيذ
- معمارية الحزم والقفل
- عقد خطة البناء v1
- عقد مساحة العمل v1
- دليل المثبت
- المستودع الأساسي: https://github.com/OmarAglan/Baa
- يتم اعتماد مواصفات Baa من المصدر الرسمي مباشرة.