لغة Zig تصدر النسخة 0.17 بتغيير في دلالة @bitCast يكسر الكود دون خطأ من المترجم
التغيير الذي يرفضه المترجم يُكتشف فورًا، أما التغيير في دلالة عملية موجودة فلا يمسكه المترجم ولا الـ linter، بل اختبار كُتب قبل الترقية.
أصدرت لغة Zig النسخة 0.17.0 يوم 2 أكتوبر 2026، بعد خمسة أشهر من العمل، و925 commit من 206 مساهمين.
وأغلب التغييرات الكاسرة في أي لغة تكشف عن نفسها. يرقّي المطور النسخة، فيرفض المترجم بناء الكود، فيصلحه. لكن أحد التغييرات في هذه النسخة لا يعمل بهذه الطريقة. فقد تغيّرت دلالة @bitCast مع المصفوفات، والكود القديم سيُترجم بنجاح دون أي رسالة خطأ، لكنه سيعطي نتيجة مختلفة. أي أن الكسر انتقل من وقت الترجمة إلى وقت التشغيل.
وذكر فريق اللغة هذا التغيير صراحةً في ملاحظات الإصدار.
وفي النسخة تغييرات أخرى. فقد انقسم نظام البناء إلى عمليتين، واحدة تهيّئ وأخرى تنفّذ. وانتقلت إدارة الحزم من المترجم إلى نظام البناء. وصارت الترجمة التزايدية، أي إعادة ترجمة الأجزاء المتغيرة فقط، تعمل في أغلب المشاريع على x86_64 Linux. وكسر انقسام نظام البناء التوافق مع ZLS، وهو خادم اللغة الذي تعتمد عليه المحررات.
والقاعدة التي يوضحها هذا الإصدار تتجاوز Zig. فأي ترقية تغيّر دلالة عملية موجودة، لا شكلها، لا يمسكها المترجم ولا الـ linter. والذي يمسكها اختبار كُتب قبل الترقية ويتحقق من النتيجة الفعلية، وبدونه قد يصل الخطأ إلى بيئة التشغيل دون أن يلاحظه أحد.
ولهذا لا تُعد هذه الترقية روتينية للمشاريع المكتوبة بـ Zig، خصوصًا تلك التي تستخدم @bitCast مع المصفوفات.