Skip to content

خلفيّة سياديّة م٠: هيكل backend/ + ٤ مخطّطات SoT + جداول x86-64 + عقد Target - #318

Merged
SalehKadah merged 1 commit into
devfrom
feat/native-backend-m0
Jul 30, 2026
Merged

خلفيّة سياديّة م٠: هيكل backend/ + ٤ مخطّطات SoT + جداول x86-64 + عقد Target#318
SalehKadah merged 1 commit into
devfrom
feat/native-backend-m0

Conversation

@SalehKadah

Copy link
Copy Markdown
Collaborator

الغرض

أوّلُ مرحلةٍ تنفيذيّة (م٠) للخلفيّة الأصليّة بلا LLVM متعدّدةِ المعماريّات — تنفيذًا لـRFC الخلفيّة السياديّة متعدّدة المعماريّات. النهجُ الجدوليّ: خطٌّ خلفيٌّ واحدٌ مشترك، والـISA بياناتٌ في جداول لا كودًا.

م٠ يُثبت الهيكلَ ومخطّطاتِ SoT وعقدَ واجهة Target — لا كودَ توليدٍ فعليّ بعد (ذلك م١+).

المُضاف

٤ مخطّطات JSON في _schemas/ (بأسلوب assembly_mnemonics القائم):

المخطّط يصف
backend_encoding جدول التعليمات — عائلتا variable (x86) وfixed32 (ARM64/RISC-V)
backend_register_file جدول السجلّات — num/role/reserved
backend_isel أنماط اختيار sir → match → emit + cost
backend_abi اصطلاح النداء + نداء النظام لكلّ (ISA×نظام)

جداول x86-64 (الهدف المرجعيّ): instructions.yaml (٥ منمنمات بترميزٍ حقيقيّ) + registers.yaml (١٦ gpr، rsp/rbp محجوزان) + isel.yaml (٣ أنماط) + abi/x86_64-linux.yaml (SysV: e_machine=62، red_zone=128، write=1/exit=60/exit_group=231).

backend/README.md: عقد واجهة Target (الحواجز) + الحدّ الفاصل مشترك/بيانات — دون كود C++ ميت (مؤجَّل لـم١ حين يستهلكها المحرّك).

البوّابة والتشديد

  • صنف TestBackendTables في test_schema_validation.py٩ تحقّقات إيجابيّة (jsonschema.validate فعليّ، لا مجرّد وجود ملفّ).
  • تشديد المخطّط: if/then يربط encoding_family بشكل encode المسموح (يمنع خلط opcode+fields) + اختبارَان سلبيّان يُثبتان الرفض.
  • ١١/١١ PASS.

المعيار والتحقّق

  • معيار قبول م٠ في الـRFC محقَّق: المخطّطات تُتحقَّق في CI + جدول x86-64 صغير يمرّ التحقّق + الحواجز قائمة.
  • أميليا CLEAR: الترميزات صحيحةٌ بايتًا ببايت (mov/add/syscall/ret)، المخطّطات صارمة، الاختبار بوّابةُ تحقّقٍ فعليّة.
  • صفر انحدار: الإخفاقات الثلاثة الأخرى في test_schema_validation (عدّ builtin_types + حقول V5 في error/type) سابقةٌ على dev وغيرُ متعلّقة (ديونٌ قائمة).

🤖 Generated with Claude Code

…ول x86-64 + عقد Target

أوّل مرحلة تنفيذيّة (م٠) للخلفيّة الأصليّة بلا LLVM متعدّدة المعماريّات (RFC الخلفيّة
السياديّة، rfcs #57). النهج الجدوليّ: خطٌّ خلفيٌّ مشترك، والـISA بياناتٌ في جداول.

المُضاف:
• ٤ مخطّطات JSON في _schemas/ (بأسلوب assembly_mnemonics القائم لا CommonFields V5):
  backend_encoding (تعليمات: variable/fixed32) + backend_register_file (سجلّات) +
  backend_isel (أنماط اختيار) + backend_abi (نداء + نداء نظام).
• جداول x86-64 (الهدف المرجعيّ): instructions (٥ منمنمات بترميز حقيقيّ: انقل/اجمع/
  نداء_نظام/ارجع) + registers (١٦ gpr، rsp/rbp محجوزان) + isel (٣ أنماط) +
  abi/x86_64-linux (SysV: e_machine=62، red_zone=128، write=1/exit=60/exit_group=231).
• backend/README.md: عقد واجهة Target (الحواجز) + الحدّ الفاصل مشترك/بيانات — دون كود
  C++ ميت (مؤجَّل لـم١ حين يستهلكها المحرّك).
• بوّابة CI: صنف TestBackendTables في test_schema_validation.py — ٩ تحقّقات إيجابيّة
  (jsonschema.validate فعليّ) + تشديد المخطّط: if/then يربط encoding_family بشكل encode
  (يمنع خلط opcode+fields) مع اختبارَين سلبيّين. ١١/١١ PASS.

معيار قبول م٠ محقَّق: المخطّطات تُتحقَّق في CI + جدول x86-64 يمرّ + الحواجز قائمة.
أميليا CLEAR (الترميزات صحيحة بايتًا ببايت، المخطّطات صارمة، الاختبار حقيقيّ).
صفر انحدار (الإخفاقات الثلاثة السابقة في keywords/error/type ديونٌ غير متعلّقة).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

📚 تذكير مزامنة دليل المطوّرين

هذا الـPR يلمس مصادر موثَّقة في دليل المطوّرين. راجع الفصول الآتية وحدّثها إن تغيّر سلوكها، ثم ثبّت البصمات هناك (python scripts/check_sync.py --update):

بندٌ في معيار الإنجاز. تذكيرٌ آليّ — لا يحجب الدمج.

@github-actions

Copy link
Copy Markdown

📘 تذكير مزامنة التوثيق التقنيّ

هذا الـPR يلمس مصادر يعرضها التوثيق التقنيّ. الصفحات المُولَّدة تُعاد بناؤها آليًّا عند الدمج/الإصدار؛ راجع الصفحات النثريّة إن تغيّر سلوكها:

تذكيرٌ آليّ — لا يحجب الدمج.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant