tmux-rs: رحلة 100 ألف سطر من التعليمات البرمجية من لغة C إلى (Rust غير الآمنة)
2025-07-03
استغرق الأمر من المؤلف ستة أشهر لنقل ما يقارب 67000 سطر من تعليمات برمجة لغة C من tmux، وهو برنامج تشغيل متعدد للنوافذ الطرفية، إلى Rust، مما أدى إلى قاعدة بيانات تتكون من ما يقارب 81000 سطر من التعليمات البرمجية. أثبتت المحاولات الأولية باستخدام مترجم C2Rust أنها صعبة، مما أدى إلى إعادة كتابة يدوية. يفصل المؤلف عملية البناء والأخطاء التي تم اكتشافها، واستراتيجيات تحويل أجزاء التعليمات البرمجية بلغة C إلى Rust، بما في ذلك معالجة المؤشرات الخام، وبيانات goto، والماكروات المتداخلة. بلغ المشروع ذروته في إعادة تنفيذ منشئ بناء الجملة lalrpop لمنشئ بناء الجملة yacc، مما أدى إلى تحقيق هجرة كاملة من لغة C إلى Rust، ونتج عنها إصدار 0.0.1. تُظهر هذه الرحلة تحديات ومكافآت نقل التعليمات البرمجية على نطاق واسع.
التطوير
من C إلى Rust