Skip to content

دليل: سحبُ فصل الآلة الافتراضية وإحلالُ فصل الخلفيّة الأصليّة (SIR → ELF64) - #6

Merged
SalehKadah merged 1 commit into
mainfrom
fix/vm-chapter-removed
Sep 1, 2026
Merged

دليل: سحبُ فصل الآلة الافتراضية وإحلالُ فصل الخلفيّة الأصليّة (SIR → ELF64)#6
SalehKadah merged 1 commit into
mainfrom
fix/vm-chapter-removed

Conversation

@SalehKadah

Copy link
Copy Markdown
Contributor

لماذا

فصلُ src/backend/vm.md كان يصف طبقةً غيرَ موجودةٍ في الشجرة: vm/ حُذف بالإيداع
bcf0a746 («حذف الآلة الافتراضية (sad_vm + sad_jit) — ستُعاد كتابتها من الصفر»).
ووثيقةٌ تصف كودًا محذوفًا أسوأُ من غياب الوثيقة.

وفي المقابل، الخلفيّةُ الأصليّة (SIR → شيفرةُ آلة → ELF64 ساكن بلا LLVM ولا رابطٍ
أجنبيّ) طبقةٌ حيّةٌ مكتملة بلا فصلٍ في الدليل.

ما الذي تغيّر

① سحبُ فصل VM

  • حُذف src/backend/vm.md، وأُزيلت إحالاتُه من SUMMARY.md وllvm.md وintroduction.md
    وrepo-map.md وarchitecture/overview.md.
  • status.md: صفُّ VM يصير «🗑️ مُزال فصله»، وبندُ خارطة الطريق يصير «إعادةُ توثيق VM:
    يُكتب الفصل من الكود عند إعادة كتابة الطبقة، لا قبلها».
  • sources.yaml/sources.lock.json: أُسقطت مصادرُ VM الثلاثة وtype_bridge.h (محذوفٌ
    هو أيضًا من شجرة اللغة).

② فصلٌ جديد: الخلفيّة الأصليّة

src/backend/native.md — مشتقٌّ من الكود لا من الذاكرة: الطبقات الأربع (جداول SoT ·
المرمِّزات · المخفِّضات + LoweringDriver بنمط CRTP · كاتب ELF64)، الأهداف الخمسة بأرقامها
المقيسة من stats (104/104/7)، نظامُ التشخيص المولَّد من الكتالوج، درجتا القياس
(بصمةُ التصريف عبر المنصّات الثلاث · التنفيذُ تحت qemu)، حرّاسُ المُنادي الأربعة، وستّةُ
مزالق مقيسة. مسجَّلٌ في sources.yaml بثمانيةِ مصادرَ تحقَّق وجودُها على dev (8/8).

③ إصلاحا الثيم

  • الجدولُ المسحوق: العلّةُ لم تكن غيابَ حاويةِ تمرير — mdBook يلفّ كلَّ جدولٍ بـ
    div.table-wrapper وله overflow-x:auto أصلًا. العلّةُ width:100% على الجدول:
    يساوي عرضَ الحاوية دائمًا فلا يقعُ تجاوزٌ ولا يعملُ التمرير. الإصلاحُ
    width:auto; min-width:100% + أرضيّةُ عرضٍ للخلايا تحت 760px.
  • فهرسُ الصفحة (theme/page-toc.js، بلا تبعيّة): يبني قائمةَ h2/h3 بعد عنوان الصفحة.
    حارسان: يتخطّى print.html (أكثرُ من h1 ⇒ مراسٍ ملتبسة)، ويستعمل المرساةَ الخامّ لا
    المُرمَّزة اتّساقًا مع مُعرِّفات mdBook العربيّة.

④ تثبيتُ نسخ البناء في CI و Deploy

mdbook-version: latest"0.5.4"، وcargo install mdbook-mermaid --locked
--version 0.17.0 --locked. ليس احتياطًا مجرّدًا: خطُّ mdbook-mermaid 0.16.x يستهدف
mdbook 0.4.52 ولا يتوافق مع 0.5
، و0.17.0 أوّلُ نسخةٍ تبني على mdbook-preprocessor 0.5.
ترقيةٌ صامتةٌ عبر latest كانت ستكسر البناءَ في CI بلا أثرٍ محلّيّ.

البراهين (مُشغَّلةٌ محلّيًّا على هذا الفرع)

البوّابة النتيجة
check_sync.py --validate ✅ rc=0 — «البيان سليم (21 فصلًا مسجَّلًا)»، بلا تحذيرات
--guard-lock (محاكاةٌ لما يشغّله CI) ✅ rc=0 — تغييرُ القفل حذفٌ صرف، فلا advanced ولا added
mdbook build ✅ rc=0 بلا تحذيرات؛ book/backend/vm.html لم يعد يُولَّد
فحصٌ يحاكي lychee --offline 1077 رابطًا محلّيًّا، صفرُ كسر — شاملًا المراسيَ عبر الصفحات
صحّةُ YAML لملفَّي سير العمل ✅ الخطواتُ تُستخرَج بقيمها الصحيحة

أثرٌ معلومٌ خارج بوّابات هذا الـPR

المصادرُ الثمانيةُ الجديدة ليست في sources.lock.json. حارسُ الـPR لا يراها (يشتقّ
مفاتيحَه من القفل لا من البيان)، لكنّ sync-check.yml الأسبوعيّ سيصنّفها added فيفتح
قضيّةَ انجرافٍ آليّة. وهذا مقصود: --update هنا كان سيعيد حسابَ كلّ المصادر مقابل
dev الحاليّ فيقدّم بصماتِ فصولٍ لم تُراجَع في هذا الفرع، ويُشعِل حارسَ الكتم الصامت
نفسَه فيُخفِق الـPR. تُثبَّت البصماتُ في PR تالٍ مخصَّصٍ لتحديث القفل.

🤖 Generated with Claude Code

…أصليّة

سُحب فصلُ الآلة الافتراضية: طبقةُ vm/ حُذفت من شجرة اللغة بالإيداع bcf0a746
(«ستُعاد كتابتها من الصفر») — فالفصلُ كان يصف كودًا غيرَ موجود. ولا يُكتب
بديلُه قبل أن يُكتب الكود.

وحلّ محلَّه src/backend/native.md: الخلفيّةُ الأصليّة SIR → ELF64 بلا LLVM ولا
رابطٍ أجنبيّ، مشتقًّا من الكود لا من الذاكرة، ومسجَّلًا في sync/sources.yaml
بثمانيةِ مصادرَ تحقَّق وجودُها على dev.

وأُصلح الثيمُ وثُبّتت نسخُ البناء:
- الجدولُ يُمرَّر أفقيًّا ولا يُسحَق: العلّةُ width:100% (يساوي عرضَ الحاوية
  دائمًا فلا يقعُ تجاوزٌ ولا يعملُ تمريرُ .table-wrapper)، والإصلاحُ
  width:auto + min-width:100% وأرضيّةُ عرضٍ للخلايا تحت 760px.
- فهرسُ الصفحة (theme/page-toc.js): بلا معالجٍ مسبقٍ ولا تبعيّةِ cargo، مع
  حارسَي print.html والمرساةِ العربيّةِ الخام.
- mdbook-version: latest ⇒ 0.5.4، وmdbook-mermaid ⇒ 0.17.0: خطُّ 0.16.x
  يستهدف mdbook 0.4.52 ولا يتوافق مع 0.5 أصلًا، و0.17.0 أوّلُ ما يبني على
  mdbook-preprocessor 0.5. الترقيةُ قرارٌ يُراجَع في PR لا حدثٌ يقع من تلقائه.

تنبيه: المصادرُ الثمانيةُ الجديدة غير مسجّلةٍ في sources.lock.json بعد —
حارسُ الـPR لا يراها (يشتقّ مفاتيحَه من القفل لا من البيان)، لكنّ الفحصَ
الأسبوعيّ سيرصدها added ويفتحُ قضيّةَ انجراف. تُثبَّت بـ--update في PR
مخصَّص لا هنا: --update يعيد حسابَ كلّ المصادر فيُقدِّمُ بصماتِ فصولٍ لم تُراجَع.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@SalehKadah
SalehKadah merged commit 724b704 into main Sep 1, 2026
2 checks passed
@SalehKadah
SalehKadah deleted the fix/vm-chapter-removed branch September 1, 2026 06:52
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