HyperAIHyperAI

Command Palette

Search for a command to run...

منذ شهر واحد

Zig تطلق تحديثًا برمجيًا جديدًا

شهدت لغة البرمجة زاغ تحولات جوهرية في شتى نواحيها خلال أوائل عام 2026، حيث ركزت التحديثات الكبرى على تسريع نظام البناء، وتحسين التجميع التزايدي، وإعادة تصميم منطق تحليل الأنواع، بالإضافة إلى تعزيز إدارة الحزم والوصول إلى واجهات النظام. في 26 مايو، أجرى المطور أندرو كيلي إعادة هيكلة شاملة لنظام البناء في لغة زاغ، حيث فُصلت عملية التكوين عن عملية التنفيذ. لم تعد ملفات "build.zig" والبرنامج نفسه مضغوطين في عملية واحدة ضخمة، بل تم تقسيم العمل إلى عمليتين منفصلتين: "المُهيئ" الذي يقرأ المنطق الخاص بالمطور وينشئ ملف إعدادات محفوظ، و"المُنجز" الذي يشغل الرسم البياني للبناء بعد ضمه في إصدارات محسّنة وسريعة. يهدف هذا التغيير الجذري إلى زيادة سرعة البناء بشكل ملحوظ، حيث أظهرت الاختبارات انخفاض وقت المعالجة بنسبة 90% في بعض الحالات. كما يتيح هذا النظام تخزين إعدادات البناء مؤقتًا، مما يمنع إعادة تنفيذ منطق المستخدم عند عدم وجود تغييرات جوهرية. روعي في هذا التحديث أن يكون غير مكسر للوظائف القائمة، مع استثناء بسيط يتعلق بآلية تمرير الوسيطات إلى الأوامر، مما يعني أن سكريبتات البناء لا تحتاج لإعادة بناء عند تغيير الوسيطات. وفي سياق تطوير أداء المترجم، أعلن ماتيو لوغ في 8 أبريل عن تفعيل ميزة التجميع التزايدي مع محرك LLVM. هذه الميزة تقلص الوقت المستغرق في معالجة الأخطاء بشكل كبير، حيث تُظهر الأخطاء فور تعديلات الكود دون الحاجة لإعادة تجميع الكود بالكامل. هذه الميزة جاهزة للتجربة على الفرع الرئيسي ومن المقرر تضمينها في الإصدار 0.16.0، وهي تمثل قفزة نوعية في تجربة المطورين خاصة عند العمل مع الأكواد الكبيرة. سبق ذلك في 10 مارس، دمج لوغ إعادة تصميم شاملة لمنطق تحليل الأنواع في المترجم، مما أدى إلى تحسينات لغوية جوهرية. أصبحت زاغ أكثر كفاءة في تحليل الأنواع، حيث تتوقف عن فحص الحقول غير المستخدمة مما يحسن الأداء. كما تم تحسين رسائل الأخطاء المتعلقة بدورات الاعتماد (Dependency Loops) لتصبح واضحة ومفصلة، مما يسهل على المطورين حل المشكلات المعقدة. كما شملت هذه التحديثات إصلاحات كبيرة لميزة التجميع التزايدي وتقليل المشاكل الناتجة عن التحليل الزائد للكود. أما بالنسبة للخدمات العامة ومعالجة المدخلات والمخرجات، فقد تم دمج تنفيذين جديدين لواجهة "std.Io.Evented" في 13 فبراير يعتمدان على تقنيتي "io_uring" و"Grand Central Dispatch". هذان التنفيذان يسمحان للمطورين بتبديل كيفية إدارة العمليات بشكل سلس في التطبيقات، مع إمكانية استخدامهما للتجربة، رغم أنهما لا يزالان تحت التطوير. وفي 6 فبراير، تم تحسين عمل إدارة الحزم بحيث يتم تخزين الحزم المسترجعة محليًا في مجلد المشروع بدلاً من المجلد المؤقت، مما يسهل المشاركة والتوزيع دون إنترنت. كما أُضيفت سطر أوامر جديد وهو "--fork" للسماح بتجاوز الحزم المكتسبة واستبدالها بنسخ محلية من الكود المصدري، مما يسهل تجربة التعديلات على المكتبات الخارجية دون الحاجة لتعديل الملفات الأصلية. فيما يتعلق بنظام التشغيل ويندوز، ركز أندرو كيلي في 3 يناير على تجاوز طبقة "Kernel32.dll" والاستعانة مباشرة بواجهة "ntdll" الداخلية للحصول على أداء أفضل وتقليل استخدام الذاكرة، خاصة في عمليات توليد الأرقام العشوائية وقراءة الملفات. وأخيرًا، استمر مشروع "zig libc" في حذف الأكواد الزائدة من مكتبات C التقليدية واستبدالها بمكتبة زاغ الأصلية، مما يقلل حجم التطبيقات المدمجة ويحسن من سرعة التجميع، حيث حُذف حوالي 250 ملفًا مصدرًا لـ C حتى الآن.

الروابط ذات الصلة