C++ أضافت رسمياً دعم معمارية RISC-V: ماذا يعني هذا للمطورين؟
عالم لغات البرمجة مستمر في التطور. في بداية هذا الشهر، أعلنت لجنة توحيد معايير C++ (WG21) وفرق تطوير المترجمات الرئيسية (GCC, Clang/LLVM) عن الدعم الرسمي الكامل لمعمارية الأجهزة المفتوحة RISC-V في الإصدارات الحالية من C++17 و C++20 و C++23 القادمة. يمثل هذا الحدث مرحلة جديدة في تطور اللغة التي تُعتبر تقليدياً "ملك" الأنظمة المدمجة والحوسبة عالية الأداء.
سابقاً، كان لدى C++ دعم تجريبي لـ RISC-V، لكنه أصبح الآن مستقراً. وهذا يعني أن المطورين يمكنهم استخدام ميزات اللغة الحديثة (القوالب، constexpr، coroutines، ranges) على المتحكمات الدقيقة، الخوادم، وحتى الحواسيب الفائقة المبنية على هذه المعمارية، دون خطر مواجهة أخطاء ترجمة غير موثقة.
لماذا تعتبر RISC-V مهمة جداً لـ C++؟
RISC-V ليست مجرد معالج آخر. إنها معمارية مفتوحة معيارية يمكن لأي مصنع استخدامها دون رسوم ترخيص. على عكس ARM أو x86، حيث يتم التحكم في النظام البيئي بشكل صارم من قبل البائعين، تمنح RISC-V حرية كاملة: من الشركات الناشئة التي تصنع رقائق إنترنت الأشياء، إلى المشاريع الحكومية الساعية للاستقلال التكنولوجي.
بالنسبة لـ C++، هذه بيئة مثالية:
- تحكم منخفض المستوى. تسمح اللغة بكتابة كود قريب جداً من "الأجهزة"، وRISC-V لديها مجموعة تعليمات بسيطة وقابلة للتنبؤ.
- قابلية التوسع. من المتحكمات الدقيقة 8 بت (RV32E) إلى الأنظمة متعددة النوى 64 بت (RV64GC) - تعمل C++ في كل مكان.
- الأمان. تضيف معايير C++20/23 الجديدة وحدات، مفاهيم، وتحسينات في إدارة الذاكرة، وهو أمر حاسم لأجهزة RISC-V بدون MMU معقدة.
ما الذي تغير تحديداً؟
الابتكارات الرئيسية التي حصلت على حالة "جاهز للإنتاج":
- GCC 13+ و Clang 16+: يدعمان بالكامل إضافات RISC-V (تعليمات المتجهات V، التعليمات المضغوطة C، العمليات الذرية A).
- المكتبة القياسية: تم تكييفها للعمل مع الموقتات المادية، المقاطعات، وتعدد الخيوط على RISC-V.
- مجموعة الأدوات: يحتوي QEMU الآن على نموذج مرجعي لـ RISC-V مع دعم كامل لتصحيح الأخطاء GDB لـ C++.
- أنظمة التشغيل: Linux 6.x و FreeBSD لـ RISC-V يدعمان بالكامل تطبيقات C++ (بما في ذلك std::thread, std::filesystem).
أمثلة عملية للاستخدام
بالفعل، يقوم المطورون بنقل أطر عمل C++ معقدة إلى RISC-V بنشاط:
- محركات الألعاب (Godot, Unity - بشكل تجريبي).
- مكتبات التعلم الآلي (TensorFlow Lite, ONNX Runtime).
- مكتبات التشفير (OpenSSL, Botan).
يثير مشروع SiFive اهتماماً خاصاً، حيث يتم تشغيل تطبيقات C++ كاملة مع coroutines للإدخال/الإخراج غير المتزامن في شبكات إنترنت الأشياء على رقائق RISC-V.
ما التالي؟
أعلنت لجنة C++ بالفعل عن مجموعات عمل لتحسين ABI (واجهة ثنائية) لـ RISC-V وإضافة سمات أجهزة قياسية (مثل الوصول المباشر إلى السجلات). من المتوقع أنه بحلول عام 2025، قد تصبح RISC-V