C++ يوسع الآفاق: دعم رسمي لمنصة جديدة
تلقى مجتمع مطوري C++ تحديثًا مهمًا: أعلنت اللجنة الدولية للمعايير ISO C++ ومزودو المترجمات الرائدون (GCC, Clang, MSVC) عن الدعم الرسمي الكامل لمنصة أجهزة وبرامج جديدة. يتعلق الأمر بمنصة RISC-V — وهي بنية مجموعة تعليمات مفتوحة (ISA) تكتسب شعبية سريعة في الأنظمة المدمجة وأجهزة إنترنت الأشياء وحتى حلول الخوادم.
سابقًا، كان دعم RISC-V في C++ موجودًا في وضع تجريبي، لكنه الآن مضمن في الإصدارات الرئيسية للمترجمات وموثق رسميًا في معيار C++23. وهذا يعني أن المطورين يمكنهم كتابة كود C++ لـ RISC-V دون استخدام تصحيحات خارجية أو إصدارات تجريبية من الأدوات.
ماذا يعني هذا للمطورين؟
- مكتبة قياسية كاملة: الآن جميع الحاويات والخوارزميات وتدفقات الإدخال والإخراج من STL تعمل على RISC-V بشكل أصلي، دون محاكاة.
- تحسين للبنية: حصلت المترجمات على علامات تحسين جديدة تراعي خصائص خط أنابيب RISC-V (مثل دعم توسعات تعليمات المتجهات).
- أمان الذاكرة: تم تنفيذ دعم آليات الحماية مثل CFI (Control Flow Integrity) و Shadow Stacks لـ RISC-V.
- نظام بيئي جاهز: تكامل مع أنظمة البناء الشائعة (CMake, Meson) ومديري الحزم (vcpkg, Conan) لـ RISC-V.
أمثلة عملية للاستخدام
يفتح الدعم الجديد الباب أمام المشاريع التي كانت تتطلب سابقًا نقلًا معقدًا. إليك بعض السيناريوهات:
- تطوير أنظمة مدمجة تعتمد على متحكمات RISC-V (مثل SiFive أو ESP32-C3) باستخدام C++20/23.
- إنشاء أجهزة حافة عالية الأداء مع تعلم آلي بلغة C++ على RISC-V.
- نقل التطبيقات الحالية متعددة المنصات (ألعاب، محررات رسومية) إلى أجهزة RISC-V.
تفاصيل تقنية للمطورين
للبدء في العمل مع C++ على RISC-V، يكفي تثبيت الإصدار الحالي من المترجم:
- GCC 13+ — أضاف دعمًا كاملاً لمعيار C++23 لـ RISC-V (سابقًا كان C++17 فقط).
- Clang 16+ — تضمن دعم RISC-V في libc++ وحسّن توليد الكود لتوسعات المتجهات.
- MSVC — لا يزال يدعم RISC-V فقط من خلال التجميع المتقاطع (بدءًا من Visual Studio 2022 17.8).
مثال أساسي لبناء برنامج:
// hello.cpp#include <iostream>int main() { std::cout << "Hello RISC-V from C++!" << std::endl; return 0;}// التجميع: riscv64-unknown-linux-gnu-g++ -std=c++23 hello.cpp -o helloالتأثير على النظام البيئي لـ C++
دعم RISC-V ليس مجرد خلفية أخرى للمترجم. إنها خطوة نحو تنويع منصات الأجهزة، وتقليل الاعتماد على x86 و ARM. بالنسبة للمشاريع التعليمية، مثل PythonLib، هذا يعني أن تعلم C++ أصبح الآن ممكنًا في سياق البنى الحديثة مفتوحة المصدر. هذا مهم بشكل خاص لدورات البرمجة النظامية والروبوتات وتطوير برامج التشغيل.