gccrs هو تطبيق بديل كامل للغة Rust على دول مجلس التعاون الخليجي
أُعلن مؤخرًا أن مشروع "gccrs" ، الذي يهدف إلى توفير واجهة للغة Rust لـ GCC (مجموعة مترجمات GNU)، يسير على المسار الصحيح ليتم دمجه في GCC 13. وفي مؤتمر مطوري FOSDEM في وقت سابق من هذا الشهر، قدم المهندس آرثر كوهين عرضًا تقديميًا حول gccrs يوضح الحالة الحالية للعمل.
بالنسبة لأولئك الذين ليسوا على دراية بمشروع gccrs، فهو عبارة عن تطبيق بديل كامل للغة Rust على GCC، بهدف أن يتم دمجه بالكامل في مجموعة أدوات GNU.
أصل هذا المشروع هو جهد مجتمعي منذ عدة سنوات ، عندما كان Rust لا يزال في الإصدار 0.9 ؛ خضعت اللغة التي أنشأتها Mozilla للعديد من التغييرات بحيث أصبح من الصعب على جهد المجتمع اللحاق بها.
الآن بعد أن أصبحت اللغة مستقرة ، حان الوقت لإنشاء مجمعات بديلة:
"بدأت في عام 2014 (وأعيد إطلاقها في عام 2019) ، والجهود مستمرة منذ عام 2020 وقد بذلنا الكثير من الجهد والتقدم الكبير. لقد قمنا بتحميل النسخة الأولى من gccrs داخل دول مجلس التعاون الخليجي. لذلك في المرة القادمة التي تقوم فيها بتثبيت GCC 13 ، سيكون بها gccrs بالداخل.
يمكنك استخدامه والبدء في اختراقه ، يمكنك الإبلاغ عن المشاكل عندما يتعطل حتما ويموت بشكل رهيب. قال آرثر كوهين أثناء عرضه التقديمي في مؤتمر FOSDEM في وقت سابق من هذا الشهر: "أحد الأشياء الكبيرة التي نقوم بها هو العمل على جعل مجموعة اختبار الصدأ تعمل".
لا تزال القدرة على تشغيل مجموعة اختبارات مُصرّف rustc بنجاح هدفًا قائمًا. ووفقًا لكوهين، فإن واجهة GCC الخاصة بلغة Rust تستهدف أيضًا الإصدار الأقدم من مكتبة Rust الأساسية 1.49.
تشير الأسئلة الشائعة لمشروع gccrs إلى أن جميع تقنيات بناء LLVM التي يستخدمها Rust "تفتقر إلى بعض الخلفيات المتوافقة مع GCC، لذلك يمكن لتطبيق gccrs سد الثغرات لاستخدامه في التطوير المتكامل ".
لاحظ ، مع ذلك ، أن برنامج التحويل البرمجي Rust-GCC (gccrs) لا يزال في مرحلة مبكرة جدًا ولا يمكن استخدامه حتى الآن لتجميع برامج Rust الفعلية.
صوّت فريق GCC في يوليو الماضي بالموافقة على دمج gccrs كحزمة بناء. تكمن أهمية هذا المشروع في تأثيره على نواة لينكس. في الواقع، تُبنى نواة لينكس عادةً باستخدام GCC، لكن الخطط الرامية إلى السماح باستخدام لغة Rust إلى جانب لغة C في كتابة كود النواة، لأسباب تتعلق بسلامة الذاكرة، تتقدم بخطى ثابتة.
تم دمج مشروع "Rust for Linux" رسميًا في شجرة Linux 6.1 Git الرئيسية في أكتوبر الماضي ، مما جعل Rust اللغة الثانية المخصصة لتطوير Linux ، بعد 31 عامًا من التطوير المستند إلى C حصريًا.
"نريد أن يكون gccrs مترجمًا حقيقيًا لـ Rust وليس مشروع لعبة أو شيئًا يجمع لغة تشبه Rust ولكنها ليست Rust ؛ نحن نحاول حقًا أن نجعل مجموعة الاختبار هذه تعمل ". خلال العرض التقديمي ، قال كوهين أيضًا أنه في حين أن واجهة Rust الخاصة بـ GCC 13 في بداية جيدة ، لا يزال هناك الكثير من العمل الذي يتعين القيام به. رمز التحقق المقترض غائب بشكل واضح في الوقت الحالي ، ولا يزال دعم الوحدات المدمجة والجوهرية مستمرًا ، ولم يتم الوصول بعد إلى المرحلة الهامة المتمثلة في تجميع كود Rust لنظام Linux.
للتذكير، يهدف مشروع Rust for Linux إلى إدخال لغة برمجة نظام جديدة في نواة لينكس. ووفقًا للخبراء، تتمتع Rust بخاصية أساسية تجعلها جديرة بالدراسة كلغة ثانية لنواة لينكس: فهي تضمن عدم حدوث أي سلوك غير مُعرَّف (شريطة أن يكون الكود غير الآمن سليمًا).
يتضمن ذلك عدم وجود أخطاء مثل الاستخدام الحر ، وعمليات التحرير المزدوجة ، وسباق البيانات ، وما إلى ذلك. تدور النقاشات ذات الصلة حول إمكانية التخلي عن لغة C لصالح لغة Rust. لكن Linus Torvalds ، مبتكر Linux ، قال إن هذا ليس الهدف المعلن لمشروع Rust for Linux.
وأخيرًا، تجدر الإشارة إلى أنه على الرغم من دمج واجهة gccrs لإصدار GCC 13 القادم، إلا أنها ليست في حالة تسمح لمعظم مطوري Rust باستخدامها كبديل لمترجم LLVM الرسمي لـ Rust.
لا ينبغي أن يكون حتى العام المقبل ، على الأقل مع دول مجلس التعاون الخليجي 14 على الأقل.
المصدر: https://fosdem.org/