بعد عام من التطوير المكثف، تم الإعلان عن إصدار النسخة الجديدة من «GCC 15.1»، والذي تم وضعه باعتباره الإصدار المستقر الأول ضمن فرع 15.x الجديد من مجموعة المترجمات مفتوحة المصدر الشهيرة هذه.
لا يقتصر هذا الإصدار على إطلاق سلسلة GCC 15 الجديدة رسميًا فحسب، بل يمثل أيضًا بداية الاستعدادات لتطوير GCC 16، حيث تم تقسيم فرع 16.0 بالتوازي وسيضع الأساس للإصدار الرئيسي التالي، GCC 16.1.
الميزات الجديدة الرئيسية لدول مجلس التعاون الخليجي 15.1
أحد أبرز التغييرات في هذا الإصدار الجديد هو أن GCC 15.1 يعتمد معيار C23 كإعداد افتراضي لتجميع كود C، باستخدام الخيار -std=gnu23. يحل هذا التحديث محل المعيار السابق المستخدم افتراضيًا، C17 (-std=gnu17)، ويقدم عددًا من الميزات الجديدة للمعيار الجديد. ومن بينهم الثابت nullptr، والنوع _BitInt(n)، والكلمات الأساسية bool وtrue وfalse، مما قد يتسبب في حدوث تعارضات مع المعرفات الموجودة في الكود القديم.
من الميزات الجديدة الأخرى التي يتضمنها GCC 15.1 هي #embed التوجيه لتضمين البيانات الثنائية، والسمات مثل عدم التسلسل والقابلية للتكرار، والتي توفر سيطرة أكبر على ترتيب التنفيذ وتحديد النتائج المتسقة. بالإضافة إلى ذلك، تم تنفيذ عناصر معيار C2Y المستقبلي، مثل المتغيرات المعلنة ضمن شروط if، ونطاقات القيم في عبارات الحالة، واللاحقات التخيلية i وj، ودعم المشغلين ++ و— المطبقين على الأعداد المركبة.
تحسينات في C++ والمستقبل C++26
في حالة لغة C++، الإصدار الجديد من ينفذ GCC 15.1 الميزات التي تتم مناقشتها لمعيار C++26، مع تقديم ميزات جديدة مثل عامل "الصديق"، واستخدام constexpr مع المتغيرات من العامل الجديد، والتحسينات في بناء الجملة للروابط المنظمة والسمات مثل musttail لضمان تكرار الذيل.
تم توسيع دعم C++23 أيضًا مع قواعد جديدة لاستخدام التصدير، وتحسينات في التعامل مع الكائنات المؤقتة، وتنفيذ تجريبي لوحدات std وstd.compat في libstdc++. بالإضافة إلى ذلك، تم تعزيز الأمان لتهيئة الاتحاد وتم تحسين تجميع التعليمات البرمجية بفضل نظام التجزئة القالب الأكثر كفاءة.
تحذيرات جديدة وتحسينات في التحليل الثابت
النظام حصل التحليل الثابت على إعادة تصميم بصري الذي يسلط الضوء على المشاكل من خلال الرموز، نصائح للانتقال إلى C23 ومكتبة libgdiagnostics جديدة الذي يسمح بإعادة استخدام منطق التشخيص في مشاريع أخرى. كما تم تقديم الدعم لإنشاء التقارير بتنسيق SARIF، مما يسهل التكامل مع أدوات تحليل التعليمات البرمجية الحديثة.
A لاس تتم إضافة التحذيرات الموجودة إلى التحذيرات الجديدة، مثل -محلل سلوك غير محدد للكشف عن عمليات الطرح بين المؤشرات غير ذات الصلة، -مسافة بيضاء لاحقة ومسافة بيضاء بادئة للإشارة إلى المسافات البيضاء غير الضرورية، و-حارس المرمى للكشف عن الأخطاء في حماية تضمين الرأس.
التحسينات والدعم
ومن بين التحسينات الملحوظة، تم تضمين وضع التجميع التدريجي لـ LTO (تحسين وقت الارتباط)، وهو مصمم لتسريع عمليات إعادة التجميع عندما تكون التغييرات ضئيلة. أيضًا تم تحسين متجه الحلقة، حتى في الحالات التي لا يكون فيها حجم المصفوفات معروفًا في وقت التجميع، ويزيد من سرعة تجميع الملفات الكبيرة جدًا.
من ناحية الدعم، تمت إضافة ملحقات ARMv64 إلى AArch8، دعم وحدات المعالجة المركزية الجديدة مثل Apple M3، Cortex-X925 وNVIDIA Grace، ويمتد منصة MinGW. تم تعزيز عملية إنشاء الكود لوحدات معالجة الرسومات AMD Radeon باستخدام دعم تجريبي لسلسلة GFX9 وGFX10.3 وGFX11 الجديدة. بالنسبة لهندسة x86، تم تمكين دعم AVX10.2 وتعليمات AMX الجديدة، وتم إيقاف دعم Xeon Phi Knights.
وبالإضافة إلى ذلك، يقدم GCC 15.1 مُجمِّعًا للغة COBOL (gcobol)، مع دعم لعمارتي x86-64 وAArch64، وتنفيذ محدث للغة D (الإصدار 2.111.0). تمت إضافة دعم الأعداد الصحيحة غير الموقعة في Fortran، وتم تعزيز اعتماد OpenMP 5.0 إلى 6.0، بما في ذلك تحسينات التشغيل البيني واستخدام الذاكرة الموحدة على وحدات معالجة الرسومات.