Skip to content

RFC: بنية متوافقة مع C-ABI للربط الخارجيّ (FFI) — الحاجز ٣/F2 للاستضافة الذاتيّة#53

Open
SalehKadah wants to merge 2 commits into
mainfrom
rfc/ffi-c-compatible-struct
Open

RFC: بنية متوافقة مع C-ABI للربط الخارجيّ (FFI) — الحاجز ٣/F2 للاستضافة الذاتيّة#53
SalehKadah wants to merge 2 commits into
mainfrom
rfc/ffi-c-compatible-struct

Conversation

@SalehKadah

Copy link
Copy Markdown
Contributor

ملخّص

RFC فرعيّ للحاجز ٣ (FFI بنيويّ) من خارطة الاستضافة الذاتيّة — يعزل الحاجز الحقيقيّ بعد فحص تجريبيّ مباشر بدليل LLVM-IR.

التشخيص التجريبيّ (٢٠٢٦-٠٧-٢٥)

  • تمرير البنية يعمل ميكانيكيًّا: صفّر(ن، 0، 24) (memset خارجيّة) يُصفّر ذاكرة كومة ص فعلًا — البرنامج المترجَم يطبع 111 ثمّ 0. المؤشّر يعبر الحدّ.
  • 🔑 الحاجز الحقيقيّ = ترويسة الصنف المخفيّة: بنية ص = { ptr ترويسة، i64 س، i64 ص }، فحقلُ س عند الإزاحة ٨ لا ٠صفّر(ن، 0، 8) يُصفّر الترويسة لا س. بنى ص ليست متوافقة تخطيط-ABI مع C.

المقترَح

سمة @تمثيل_سي تُعلِّم بنية بتخطيط قيمة C-متوافق (بلا ترويسة) — نظير Rust #[repr(C)]. إضافة غير كاسرة (البنى القائمة لا تتغيّر). تنفيذٌ متدرّج: قبول المفسّر ← تخطيط+تمرير بالمؤشّر ← تمرير بالقيمة (تصنيف ABI).

السياق

RFC خارطة الطريق يصنّف الحاجز ٣ «مؤجَّل لا حاجز» لمسار IR النصّيّ؛ هذا المقترح يُفعَّل عند قرار المضيّ في FFI البنيويّ. مكمّل لـrfc/f3-raw-pointer-load-store (مؤشّر خامّ) ومتمايز عنه (تخطيط بنية مؤنمَط).

🤖 Generated with Claude Code

SalehKadah and others added 2 commits July 25, 2026 07:32
…فة الذاتيّة

يعزل الحاجز الحقيقيّ في FFI البنيويّ بعد فحص تجريبيّ بدليل LLVM-IR:
تمرير المؤشّر يعمل ميكانيكيًّا، لكنّ بنى ص مُعلَّبة بترويسة صنف مخفيّة
عند الإزاحة صفر فلا تطابق تخطيط C. يقترح سمة @تمثيل_سي لبنية بلا-ترويسة
بتخطيط قيمة C-متوافق، متدرّجةً: قبول المفسّر ← تخطيط+مؤشّر ← بالقيمة.
إضافة غير كاسرة؛ نظير Rust #[repr(C)].

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