Skip to content

RFC: الوضعُ الحرُّ والخلفيّةُ الأصليّةُ في سِتِّ خانات — لا في خانةٍ واحدة - #60

Open
SalehKadah wants to merge 11 commits into
mainfrom
rfc/الوضع-الحر-في-ست-خانات

Hidden character warning

The head ref may contain hidden characters: "rfc/\u0627\u0644\u0648\u0636\u0639-\u0627\u0644\u062d\u0631-\u0641\u064a-\u0633\u062a-\u062e\u0627\u0646\u0627\u062a"
Open

RFC: الوضعُ الحرُّ والخلفيّةُ الأصليّةُ في سِتِّ خانات — لا في خانةٍ واحدة#60
SalehKadah wants to merge 11 commits into
mainfrom
rfc/الوضع-الحر-في-ست-خانات

Conversation

@SalehKadah

Copy link
Copy Markdown
Contributor

الخلفيّةُ الأصليّةُ (بلا LLVM) والوضعُ الحرُّ محروسانِ اليومَ في خانةٍ واحدةٍ من
سِتّ
. وهذا المقترحُ يفكُّ الحبسَ البنيويَّ الذي يجعلُ ذلك ضروريًّا — أنّ الخلفيّةَ
الأصليّةَ، وهي بلا LLVM في مصدرِها، محبوسةٌ داخلَ هدفِ بناءٍ لا يُعرَّفُ إلّا إذا
وُجدت LLVM
— ثمّ يوسّعُ الحراسةَ إلى الخاناتِ الستِّ بالحدِّ الذي تسمحُ به كلُّ منصّة.

التنفيذُ نزلَ فعلًا في s-programming-language#435، والنصُّ محدَّثٌ بالقياسِ لا
بالتقدير: القسمُ «ما نُفِّذَ فعلًا» يحملُ الجدولَ المصحَّحَ وجوابَ الأسئلةِ الثلاثةِ
المفتوحة.

🤖 Generated with Claude Code

SalehKadah and others added 11 commits July 21, 2026 11:22
3 قدرات تُطفئ أرضيّة C الهلعيّة في نهلة: @لا_ترجع (سمة دالّة لا تعود ⇒
unreachable) + هلع ص (__sad_panic) + إعادة تسمية مدمج hlt («توقف» يصادم
break) إلى أسبِت_المعالج (فعل-أوّلًا). تُطفئ bee_halt_forever والهلع.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ثلاثُ مراحلَ تبني على بنيةِ أمانِ العدم (RFC 0003): (أ) الفراغُ لا يعبر
الخاناتِ المصنّفةَ إلا خطأً يحكمه محورُ الصرامة، (ب) جلبٌ مصنَّفٌ يُرجِع
اختياريًّا فيصير الغيابُ قيمةً يفرض النظامُ فحصَها، (ج) أفقُ الخرائطِ
المعمَّمة. الدافعُ مقيسٌ لا مظنون: خانةٌ معلنةٌ «نص» تحمل فراغًا بتحذيرٍ
استشاريٍّ وexit=0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… موضعيّ

قرارُ نطاقٍ كان سيقبع في تعليق سكربت قياسٍ نثريّ (درسُ «قائمة إذن في
تعليق تتعفن») يصير نصًّا في الـRFC ذاته. ويُثبَّت أن الإيقاف في الدرجة
القاطعة يقع موضعَ الخرق (RuntimeAbort) لا عند فحص نهاية البرنامج —
قِيس أن التأجيل يُنفِّذ الأعراضَ الجانبية بعد الخرق داخل أجسام الدوال.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
عند تنفيذ الموجة أ٢ (المحلّل الساكن المشترك + الحارس الزمنيّ قبل STORE)
قِيست أربعة انحرافات عن الصياغة المطلقة الأولى، فتُقيَّد هنا وفق عرف
«لا نسخة منثورة لحقيقة تغيّرت»: مدى الخلفيات (LLVM وحدها اليوم)،
وافتراضيُّ الحارس الزمنيّ بلا أعلام (تحذير لا صرامة بنية السياسة —
درسُ أ١ نفسُه)، وفيصلُ التصنيف (سجلُّ التصريح الأماميّ لا نوعُ الخانة
المولَّدة، لأن المسح المسبق يجعلها SadDyn منذ الحجز)، وحدودُ التغطية
المعلنة (معاملات المترجَم، العامّ العابر للدوالّ، خانات الماكرو).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…، وديون موروثة معلنة

يقيَّد ما قِيس عند تنفيذ المرحلة ب والإصلاحين المرافقين:
- سدُّ معاملات المترجَم (الحارس في موضع النداء قبل الفكّ — الفيصل سجلٌّ
  لكل معامل لا الفضاء المسطّح) وحدُّ النداء غير المباشر المعلن.
- صدق فاحص الأنواع («وُجد 'فراغ'» بدل «رقم» المختلَق) واستبعاد الدوالّ
  المتداخلة من مسح اليقين.
- جواب السؤال المفتوح: «منطقي؟» عبر %SadDyn بلا سباكة جديدة.
- رسالة RUN074 المترجَمة: قبل حاجز «حاول»، نسق «%s» ثابت، وفرق صياغةٍ
  معلَن عن كتالوج المفسّر.
- إرجاء تقييد وصف type.void (سطره ملموس بعمل أجنبي غير مودَع) وثلاثة
  ديون موروثة قيست وأُعلنت بطاقات متابعة.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
أربعة بنود مقيسة عند التنفيذ: إصلاح الخانة العارية (ConstantVoid عبر
STORE وترقية Unknown+Void إلى Any)، حارس المستقبِل الضيّق عمدًا (سجلّ
العدد الصحيح المتغيّر حدّ معلَن)، حقول الأصناف المصنَّفة (declaredKind
في المواقع الأربعة، الموروث مدموج، حدود معلَنة)، وتكافؤ الكتابة
المفهرسة مع حدّ المصفوفة المتجانسة. ودَين جديد مقيس: وسم الفراغ في
حقول الكائن العارية مترجَمًا (MEMBER_SET/GET بلا ذراع ConstantVoid).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
وثّقت: وسم الفراغ في حقول الكائن (ConstantVoid + المسح المسبق، لا
ترقية أمامية)، توحيد قناة الجلب المصنَّف (%SadDyn للثلاثة — سدّ
تصادم kSadNullSentinel)، باب إبلاغ SEM045 الواحد، ذراع الصدقية
الموسومة في الشرط. والديون الباقية: الحساب على غياب موسوم يعطي
صفرًا صامتًا مترجَمًا، حقل مصنَّف عبر متغيّر كائن بلا قطع ترجمة،
وتباعد «دالة بناء()» بانيًا (نقض VE049 — بطاقة مستقلة).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…واحدة

الخلفيّةُ الأصليّةُ (بلا LLVM) والوضعُ الحرُّ محروسانِ في خانةٍ واحدةٍ من سِتّ:
Linux × Release. والسببُ بنيويٌّ لا سياسيّ: هدفُ sad-build كلُّه ملفوفٌ بـ
`if(ENABLE_LLVM_BACKEND AND LLVM_FOUND)`، فالخلفيّةُ التي لا تحتاجُ LLVM
محبوسةٌ داخلَ شرطِ وجودِها.

والقياسُ يقولُ إنّ الفكَّ أرخصُ ممّا يبدو: خمسةُ ملفّاتٍ فقط من ثلاثةَ عشرَ
تُضمِّنُ ترويسةَ LLVM فعلًا، و compiler_driver_native.cpp نظيفٌ تمامًا
(صفرُ ترويسة)، والترويسةُ المشتركةُ compiler_driver.h نظيفةٌ كذلك.

والثمنُ مقيسٌ لا مُفترَض: علّةُ prove_riscv64_decl_parity.sh عاشت ستَّ
جولاتِ CI لأنّ الخانةَ الكاشفةَ واحدةٌ في ذيلِ أطولِ وظيفة.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ستبعَد

- تصحيح: الوضعُ الحرُّ مقيسٌ على ويندوز Release أيضًا ⇒ ٢/٦ لا ١/٦.
- ما نُفِّذَ فعلًا: الملفُّ الوحيدُ الذي يلمسُ LLVM هو compiler_driver_backend.cpp؛
  والباقي إمّا ترويساتٌ ميّتة، أو هادمُ unique_ptr (⇒ shared_ptr)، أو تشخيصٌ
  نُقلَ قرارُه إلى ترويسةٍ بلا LLVM يستدعيها مولّدُ LLVM بمُحوِّلٍ اسميّ.
- برهانُ التصريف: بصمةُ ELF (١٨ صورة) بسِقّاطةٍ ثنائيّةِ الاتّجاه.
- جوابُ الأسئلةِ الثلاثةِ المفتوحة.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
كُتِبَ في الحاشيةِ ¹ أنّ ويندوز Debug «حدٌّ تقنيٌّ معلَنٌ ومُعلَّل»، وقِيسَ فتبيّنَ
أنّ شرطَ العلاجِ لا يُعرَّفُ في المستودعِ فلا يمكنُ أن يصيرَ صادقًا. صُحِّحَ
الجدارُ الثاني والحاشيةُ ¹ بالقياس، وأُضيفت الحاشيةُ ² تشرحُ لماذا براهينُ
التنفيذِ الحيِّ على لينكسَ وحدَها: الخلفيّةُ تكتبُ ELF64 حصرًا ولا مُحمِّلَ له
في ويندوز (PE) ولا ماك (Mach-O) — حدٌّ في المبدأ لا ثغرةُ تشغيل.

Co-Authored-By: Claude Opus 5 (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