# مشروع curl يواجه خطأين في مترجمَي gcc وRust يخصان تحسين الكود على معمارية arm64

> **المغزى:** المغزى: حين يخطئ المترجم يبقى الكود المصدري صحيحًا، لكن البرنامج الذي يعمل ليس ما كُتب، وكل أدوات المراجعة والاختبار المعتادة تنظر إلى المصدر وحده.

- المصدر: المغزى (https://almaghza.com/a/2026-10-06-curl-two-arm64-compiler-bugs/)
- التاريخ: 25 ربيع الآخر - 6 أكتوبر 2026 (2026-10-06)
- القسم: برمجيات
- الوسوم: curl، المترجمات، Arm، Rust

كتب Daniel Stenberg، صاحب مشروع curl، صباح 6 أكتوبر 2026 على Mastodon: "This week in #curl we get to experience not one, but two compiler bugs".

والخطآن، بحسب منشوره، في تحسين الكود (optimization) الخاص بمعمارية arm64. أحدهما في gcc-15 وgcc-16، والآخر في مترجم Rust. ونسب Stenberg البحث كله إلى باحث واحد هو @vsz، وأحال إلى التفاصيل في الـ issue رقم 23237 على مستودع curl. ولم يربط المنشور الخطأين بأي ثغرة أمنية، وسجل ثغرات curl الرسمي لا يذكرهما.

والفكرة الأساسية أن الخطأ ليس في كود curl. الخطأ في المترجم، وهو البرنامج الذي يحول الكود المصدري إلى تعليمات ينفذها المعالج. أي أن المصدر صحيح، لكن الملف التنفيذي الذي يعمل على الجهاز قد لا يطابق ما كُتب.

وهنا تتوقف عادات الفحص المعروفة عن العمل. فقراءة الكود والاختبارات والـ linter كلها تنظر إلى المصدر، ولا شيء منها يفحص ما أخرجه المترجم فعلًا.

وتزداد أهمية arm64 تحديدًا لأنها صارت المعمارية التي يعمل عليها جزء كبير من البرمجيات اليوم: أجهزة Mac بمعالجات Apple، وخوادم Graviton على AWS، وكثير من أرخص الـ instances في السحابات، والهواتف. فالمعمارية التي كانت حالة خاصة قبل سنوات صارت حالة عامة، وأخطاء مترجماتها لم تعد شأنًا هامشيًا.

ومثل هذه الأخطاء نادرة، واكتشافها أندر. وظهورها في مشروع بحجم curl، الذي يعمل في عدد هائل من الأجهزة وتراقبه أعين كثيرة، يطرح سؤالًا عن عدد الأخطاء المماثلة التي تمر في مشاريع أصغر دون أن يلاحظها أحد.

## المصادر

- [منشور Daniel Stenberg على Mastodon](https://mastodon.social/@bagder/117392573268225646)
- [الـ issue رقم 23237 في مستودع curl](https://github.com/curl/curl/issues/23237)
- [سجل الثغرات الرسمي لـ curl](https://curl.se/docs/security.html)
- [قاعدة أخطاء gcc](https://gcc.gnu.org/bugzilla/)
