Skip to content

RFC: الخلفيّة السياديّة متعدّدة المعماريّات — توليد شيفرة أصليّ بلا LLVM (جدوليّ، ٥ ISAs) - #57

Open
SalehKadah wants to merge 1 commit into
mainfrom
rfc/sovereign-multiarch-backend
Open

RFC: الخلفيّة السياديّة متعدّدة المعماريّات — توليد شيفرة أصليّ بلا LLVM (جدوليّ، ٥ ISAs)#57
SalehKadah wants to merge 1 commit into
mainfrom
rfc/sovereign-multiarch-backend

Conversation

@SalehKadah

Copy link
Copy Markdown
Contributor

ملخّص

مقترحٌ يرسمن قرارَ المالك: خلفيّةٌ أصليّةٌ لمترجم ص لا تعتمد على LLVM إطلاقًا لتوليد الشيفرة، مصمَّمةً متعدّدةَ المعماريّات من الجذر لا كإضافةٍ لاحقة.

المبدأ الحاكم: خطٌّ خلفيٌّ واحدٌ مشترك (SIR → MIR → تخصيص سجلّات → ترميز → كاتب ELF)، والاختلافُ بين المعماريّات يُوصَف بياناتٍ في جداولٍ لكلّ ISA لا كودًا.

النطاق: خمسُ معماريّات — x86-64, AArch64/ARM64, RISC-V (RV64GC+RV32), ARMv7-A, i686.

النتيجة المرئيّة: sadc file.ص --target=aarch64-linux -o file يُنتج ثنائيَّ ELF أصليًّا — بلا clang/lld/as/زمن تشغيل C — لأيٍّ من المعماريّات.

أبرز ما يقرّره

  • عقد واجهة Target تمنع تسرّبَ افتراضات معماريّةٍ بعينها إلى الخطّ المشترك.
  • ٤ جداول/ISA في language-truth/backend/<arch>/: تعليمات + سجلّات + أنماط اختيار + ABI.
  • محرّك ترميز عامّ يُكتَب مرّةً (فرعان: fixed32 مشترك لـARM64/RISC-V، variable لعائلة x86).
  • بوّابةٌ حرجة: اختبارٌ تفاضليٌّ بايت-ببايت ضدّ llvm-mc — LLVM مصحِّحٌ مرجعيٌّ في CI فقط، لا تبعيّة إنتاج.
  • الانضباط الحاسم: الهدفُ الثاني (AArch64) مبكرًا لإثبات عموميّة التجريد.
  • مسارٌ مرحليّ م٠–م٦، وصفرُ كسرٍ توافقيّ (الأمامية/AST/المفسّر بلا تغيير؛ خلفيّةٌ خلف علَم).

الموقع والأساس

  • RFC سياديٌّ مستقلّ تحت رؤية «المكدّس العربيّ السياديّ» / حملة الخلفيّة الأصليّة بلا LLVM — يُحقّق ما وضعته مظلّةُ «الاستضافة الذاتيّة» خارجَ نطاقها (استبدال LLVM بخلفيّةٍ أصليّة).
  • مستندٌ تقنيًّا إلى تقريرَي no_llvm الداخليّين (تقرير الاستقلال + تصميم طبقة الترميز الجدوليّة).
  • أوّلُ لبنةٍ ملموسةٍ مدموجة: سدُّ اكتب_بايتات/اقرأ_بايتات (لغة PR #316) — كتابةُ بايتاتٍ خامٍّ تشمل 0x00، لبنةُ كاتب ELF.

المراجعة

راجعته أميليا (مراجعة خصميّة) على جولتين: التقطت خطأَ إسنادٍ («حاجز ١») + تحريفَ تعداد SIR + انحرافَ ترتيبِ الهدف الثاني + تدقيقَ تاريخٍ وحالةِ PR — وكلُّها عولِجت، ثمّ CLEAR.

🤖 Generated with Claude Code

…LVM (جدوليّ، ٥ ISAs)

مقترحٌ يرسمن قرارَ المالك: خلفيّةٌ أصليّةٌ لمترجم ص بلا LLVM لتوليد الشيفرة،
متعدّدةُ المعماريّات من صميم التصميم لا كإضافةٍ لاحقة. المبدأ: خطٌّ خلفيٌّ واحدٌ
مشترك (SIR→MIR→تخصيص سجلّات→ترميز→كاتب ELF)، والاختلافُ بين المعماريّات بياناتٌ
في جداولٍ لكلّ ISA لا كودًا. النطاق: x86-64، AArch64، RISC-V، ARMv7، i686.

يشمل: عقد واجهة Target، الجداول الأربعة (تعليمات/سجلّات/أنماط اختيار/ABI) في
language-truth/backend/، محرّك ترميز عامّ (fixed32/variable)، بوّابة اختبار
تفاضليّ بايت-ببايت ضدّ llvm-mc (مصحِّح مرجعيّ لا تبعيّة إنتاج)، وانضباط الهدف
الثاني المبكّر لإثبات عموميّة التجريد. مسارٌ مرحليّ م٠–م٦، صفر كسرٍ توافقيّ.

مستندٌ لتقريرَي no_llvm؛ RFC سياديّ مستقلّ يحقّق ما وضعته مظلّةُ الاستضافة
الذاتيّة خارجَ نطاقها (استبدال LLVM بخلفيّة أصليّة). راجعته أميليا خصميًّا: CLEAR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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