برمجياتقراءة دقيقتين

لغة Zig تصدر النسخة 0.17 بتغيير في دلالة @bitCast يكسر الكود دون خطأ من المترجم

المغزى

التغيير الذي يرفضه المترجم يُكتشف فورًا، أما التغيير في دلالة عملية موجودة فلا يمسكه المترجم ولا الـ linter، بل اختبار كُتب قبل الترقية.

أصدرت لغة Zig النسخة 0.17.0 يوم 2 أكتوبر 2026، بعد خمسة أشهر من العمل، و925 commit من 206 مساهمين.

وأغلب التغييرات الكاسرة في أي لغة تكشف عن نفسها. يرقّي المطور النسخة، فيرفض المترجم بناء الكود، فيصلحه. لكن أحد التغييرات في هذه النسخة لا يعمل بهذه الطريقة. فقد تغيّرت دلالة @bitCast مع المصفوفات، والكود القديم سيُترجم بنجاح دون أي رسالة خطأ، لكنه سيعطي نتيجة مختلفة. أي أن الكسر انتقل من وقت الترجمة إلى وقت التشغيل.

وذكر فريق اللغة هذا التغيير صراحةً في ملاحظات الإصدار.

وفي النسخة تغييرات أخرى. فقد انقسم نظام البناء إلى عمليتين، واحدة تهيّئ وأخرى تنفّذ. وانتقلت إدارة الحزم من المترجم إلى نظام البناء. وصارت الترجمة التزايدية، أي إعادة ترجمة الأجزاء المتغيرة فقط، تعمل في أغلب المشاريع على x86_64 Linux. وكسر انقسام نظام البناء التوافق مع ZLS، وهو خادم اللغة الذي تعتمد عليه المحررات.

والقاعدة التي يوضحها هذا الإصدار تتجاوز Zig. فأي ترقية تغيّر دلالة عملية موجودة، لا شكلها، لا يمسكها المترجم ولا الـ linter. والذي يمسكها اختبار كُتب قبل الترقية ويتحقق من النتيجة الفعلية، وبدونه قد يصل الخطأ إلى بيئة التشغيل دون أن يلاحظه أحد.

ولهذا لا تُعد هذه الترقية روتينية للمشاريع المكتوبة بـ Zig، خصوصًا تلك التي تستخدم @bitCast مع المصفوفات.

المصادر

  1. ملاحظات إصدار Zig 0.17.0 الرسمية
  2. سجل تطوير اللغة لسنة 2026
  3. مشروع ZLS على GitHub
  4. صفحة تنزيل النسخ

من عدد الاثنين 24 ربيع الآخر - 5 أكتوبر

أخبار ذات صلة

برمجيات

خطة إدخال Rust إلى CPython تبدأ بوحدة zlib في Python 3.16 ولا تصبح إلزامية قبل 2029

القرار ليس اختيار لغة أفضل، بل مقايضة بين أمان الذاكرة وتنوع المترجمات التي تُبنى بها Python، وكلاهما يكشف أخطاء بطريقة مختلفة، وأكثر من يتأثر بها من يبني امتدادات C أو يعمل على منصات غير شائعة.

23 ربيع الآخر - 4 أكتوبر

أخبار الاثنين 24 ربيع الآخر - 5 أكتوبر