البداية · ميثاق التأسيس · 2026

مكتوبة بواسطة نماذج LLM. مُترجَمة إلى أيّ عتاد.

Cyr هي اللهجة الأصيلة (native) للغة Cyra — مُترجَمة مسبقًا (AOT) عبر LLVM، من الخوادم نزولًا إلى MCU عارٍ. بلا آلة افتراضية (VM)، بلا جمع للمهملات (GC). اللغة التي تكتبها الآلات، الآن على العتاد.

كود أصيل (native)، من تطبيقك نزولًا حتى PID 1.

Pre-v0

تشارك هذه الصفحة الأفكار الأولى، وفلسفة البداية، والتوقعات المتعلقة بـ Cyr. الاسم، وعلاقة الجذع/الفرع، وأسماء بيئة التشغيل وواجهة سطر الأوامر، ومجموعة من القرارات الأساسية مُثبَّتة — لكن Cyr لم تُطلَق بعد. ما تقرأه هنا ميثاق، وليس إصدارًا.

حيث تكون BEAM جدارًا.

Cyra ممتازة فيما تبرع فيه BEAM: الأنظمة المتزامنة، المتحمّلة للأخطاء، القابلة لإعادة التحميل أثناء التشغيل. لكن أصنافًا كاملة من العمل تقع تحت ذلك الخط. اليوم، على المطوّر الذي يصطدم بالجدار أن ينزل إلى C أو Rust أو Zig ويغادر اللغة كليًا. Cyr هي مخرج الطوارئ الذي يُبقيك ضمن العائلة.

LLVM، AOT

تُترجِم Cyr مسبقًا (ahead-of-time) إلى كود كائني أصيل عبر LLVM — بلا آلة افتراضية، بلا JIT. ثنائي مكتفٍ ذاتيًا يعمل على منصة من الفئة الأولى دون تثبيت أي شيء.

بيئة تشغيل صغيرة: cyrt

بيئة تشغيل صغيرة مرتبطة بكل ثنائي — مُخصِّص للذاكرة، معالج الانهيار، دوال داخلية. مستهدفة بضع مئات قليلة من الكيلوبايتات، لا الميغابايتات. ممكنة في الأنظمة المضمّنة وفي WASM.

.C

واجهة C23 FFI

@external(c, "...") هي سطح التداخل الأصيل الوحيد. استدعِ C وكُن مُستدعىً من C بتواقيع كاملة، وأعراض صريحة، وقابلية فراغ صريحة — دون أي ربط مكتوب يدويًا.

الصياغة نفسها، الروح نفسها

تدفّق عبر switch حصرًا، وOption/Result، وأنماط صريحة — صياغة مطابقة بنحو 85% للغة Cyra. المهارة والمصدر يعبران الحدّ بين المُدار والأصيل.

التفرّع الشجري

صياغة واحدة، نواة دلالية واحدة، خلفيتان (backends) — على غرار امتلاك C لتطبيق مُستضاف وآخر قائم بذاته (freestanding). الجذع هو الصياغة المشتركة؛ والفرعان يتباعدان فقط حيث يفرض عليهما نموذج بيئة التشغيل ذلك.

// لهجة BEAM

Cyra

دافئة ومُدارة. تعمل على آلة.

  • الهدف آلة Erlang الافتراضية — ديناميكية، إعادة تحميل أثناء التشغيل
  • الفاعلونpid / ref / port
  • أعداد صحيحة عشوائية الدقة
  • واجهة :erlang.* FFI · مكتبة Cyra.* القياسية

// اللهجة الأصيلة

Cyr

عتاد عارٍ. هي كود الآلة.

  • الهدف LLVMAOT، ثنائي ساكن
  • C23 FFIptr<T>، @external(c, "...")
  • i64 افتراضيًا + bigint بالاختيار
  • بيئة تشغيل cyrt · مكتبة Cyr.* القياسية

من تطبيقك حتى PID 1.

تستهدف Cyr صراحةً تطوير الأنظمة منخفضة المستوى وأنظمة التشغيل — حتى ما يشمل init/PID 1، والخدمات الخفية، والمُشغّلات، والكود القائم بذاته (freestanding) على العتاد العاري. كلما اشتدّت صعوبة الملف، ابتعدت اللغة عن الطريق أكثر. يُنظَّم مدى Cyr في ثلاثة ملفات تنفيذ.

1

مُستضاف

تطبيق · خدمة خفية · واجهة سطر أوامر

برنامج أصيل عادي على نظام تشغيل كامل. تتوفّر المنظومة كاملةً، وتستخدم cyrt كومة نظام التشغيل وخيوطه.

cyrt كاملة + مكتبة Cyr.* القياسية كاملة + libc
2

قائم بذاته مُستضاف

init / PID 1 · ثنائي ساكن أدنى

النواة موجودة لكن فضاء المستخدم أدنى ما يكون. ينبغي ألا يجرّ PID 1 مكتبة libc كاملة — طبقة استدعاء نظام مباشر رفيعة تخاطب النواة.

cyrt + Cyr.Core + libc رفيعة / استدعاءات نظام
3

عتاد عارٍ

نواة · مُحمِّل إقلاع · برنامج ثابت · ISR

لا نظام تشغيل إطلاقًا. أنت تأتي بالمُخصِّص للذاكرة؛ لا خيوط، لا libc، لا فكّ لِلْمكدّس. لغة تجميع مضمّنة، volatile/MMIO، عمليات ذرّية، نقاط دخول مخصّصة.

cyrt-core فقط · لا libc، لا مُخصِّص ذاكرة لنظام التشغيل

أصيلة، صريحة، لا لبس فيها

مقطع من مُشغّل مع C23 FFI، وتخطيط مُحكَم، وOption بدلًا من القيمة الفارغة (null)، وعودية ذيلية تعمل بمكدّس ثابت — كل ذلك بصياغة Cyra المألوفة.

driver.cyr
module Sensor.Driver {
    use Cyr.Result;

    // C23 FFI — the single native interop surface
    @external(c, "read_register")
    fn read_register(addr: ptr<u32>) -> u32;

    @repr(packed)
    struct Reading { id: u16; value: i32; }

    // switch-only flow; Option<T> for absence, never null
    pub fn decode(raw: u32) -> Option<Reading> {
        switch raw {
            0 => None;
            _ => Some(Reading { id: 1, value: raw as i32 });
        }
    }

    // guaranteed constant stack — TCO holds at the CIR layer
    fn sum(xs: list<i64>, acc: i64) -> i64 {
        switch xs {
            []        => acc;
            h :: rest => sum(rest, acc + h);   // i64 traps on overflow
        }
    }

    @entry
    pub fn main() -> i32 { 0; }
}

القرارات الأساسية

تنطلق Cyr من المنطلقات التي حسمتها Cyra سلفًا، إضافة إلى مجموعة من الأبواب أحادية الاتجاه التي صادق عليها مجلس الفلسفة عند البداية. هذه هي التوقعات التي تلتزم بها Cyr.

i64

لا فيضان صامت

i64 افتراضيًا؛ الحساب يتوقّف (traps) افتراضيًا. أما wrapping وsaturating وbigint فهي اختيارات صريحة.

?:

الغياب عبر Option حصرًا

nil مُتقاعدة من الأنماط غير Option. القيمة الفارغة (null) تعيش فقط خلف ptr/any عند جدار C.

TCO مضمون

العودية في الموضع الذيلي — بما في ذلك العودية المتبادلة — تعمل بمكدّس ثابت. ضمان دلالي عند طبقة CIR، لا مجرّد ثقة بـ LLVM.

&

ARC، دون مُدقّق استعارة

الذاكرة تُدار بـ ARC + ساحة (arena) اختيارية + weak. السلامة مُنقولة إلى الإعدادات الافتراضية للمُترجِم، لا إلى توصيفات أعمار يكتبها المؤلف — القرار الصائب لمدوّنة مكتوبة بواسطة نماذج LLM.

!!

كود unsafe صريح وأدنى

فكّ مؤشّر ptr<T> الخام والتحويل النازل لـ any يعيشان فقط داخل unsafe — قابلان للبحث (grep) والتدقيق.

::

مكتبة Cyr.* قياسية مستقلّة

تُعيد Cyr كتابة مكتبتها القياسية بشكل أصيل. قابلية النقل تعيش في الصياغة، لا في أسماء المكتبة — سطر use صادق دائمًا حول لهجته.

ما ليست عليه Cyr

ليست إعادة كتابة ولا تشعّبًا

Cyr ليست "Cyra 2.0" ولا تتباعد في الصياغة. إنها لغة واحدة بخلفيتين (backends) — لا لغتان متنافستان.

ليست علامة تجارية منفصلة

تأتي Cyr كجزء من المشروع نفسه — الأدوات نفسها، والمجتمع نفسه — لا كمنتج منافس بهوية خاصة به.

ليست نموذج الفاعلين

pid وref وport وspawn وreceive وsend مُزالة. كل ما يشبه الفاعلين هو مكتبة، لا بُنية أوّلية في اللغة.

ليست عرضًا عامًا للأنظمة

Cyr موجّهة للأشخاص الذين يحبّون Cyra سلفًا ويريدون الآن كتابة الطبقة الواقعة تحت تطبيقاتهم — لا عرضًا موجّهًا لعموم جمهور برمجة الأنظمة.

مُقرَّرة بتأنٍّ، مرّة واحدة

"استمرارية المصدر والمهارة"

مبدأ Peirce البراغماتي هو اختبار Cyr: أيّ فرق ملموس تُحدثه Cyr ولا تُحدثه "Cyra مع مجرّد استخدام C"؟ الجواب — استمرارية المصدر والمهارة عبر الحدّ بين المُدار والأصيل — يحكم كل خيار تصميمي.

"الصياغة مشتركة، والمكتبة صادقة"

تتشارك اللهجتان نحو 85% من صياغتهما — وهي الأصل القابل للنقل فعلًا. وهما عمدًا لا تتشاركان أسماء المكتبة: التماسك ينتمي إلى الصياغة وواجهة سطر الأوامر؛ والصدق ينتمي إلى فضاء الأسماء.

"واحد وعشرون فيلسوفًا، ميثاق واحد"

عِلَل Aristotle الأربع تُؤطّر الجهد؛ وPopper يُسمّي ما من شأنه أن يُكذّب النجاح؛ ومتناقضات Kant تُبقي المجلس صادقًا. ثمانية عشر مجالًا تصميميًا مفتوحًا قرأها الواحد والعشرون جميعًا، وصُودق على القرارات الأساسية — يعمل المجلس بوصفه organon، مفتوحًا على GitLab.