تعطل مُجمِّع سوليديتي: عاصفة مثالية من الأخطاء القديمة
2025-08-16

ظهرت مشكلة تعطل محيرة مؤخراً في مُجمِّع سوليديتي: حيث يتسبب في خطأ في التقسيم حتى عند تجميع رمز صالح تماماً. تم تتبع السبب الرئيسي إلى خطأ في حلّ التحميل الزائد عمره 12 عاماً في إصدارات G++ الأقدم من 11.4، والذي يتفاعل مع قواعد إعادة كتابة المقارنة الضمنية في C++20 عند التعامل مع نوع `boost::rational` من Boost. هذه المجموعة تؤدي إلى تكرار لانهائي وتجاوز سعة المكدس. المشكلة ليست في رمز سوليديتي نفسه، بل في تفاعل مفاجئ بين G++ وBoost ومواصفات C++20. الحل هو ترقية Boost إلى الإصدار 1.75 أو أحدث، أو ترقية G++ إلى الإصدار 14 أو أحدث.
(osec.io)