أصدرت Microsoft الرمز من تنفيذها لـ STL ، مكتبة C ++ القياسية

مفتوح المصدر STL

كان مؤتمر CppCon 2019 هو المكان المناسب لـ تحقيق إعلان كبير من Microsoft ، حسنا فيها كشف النقاب عن إصدار رمز مصدر مكتبة STL معيار C ++ المضمن مع Visual C ++ والذي يتوفر اعتبارًا من الإعلان بموجب ترخيص مجاني ، وتحديداً Apache 2.0 (وهو متساهل تمامًا).

تستخدم مكتبة libcxx القياسية LLVM / Clang C ++ هذا الترخيص بالفعل، والتي ينبغي أن تسهل تبادل الكود بين المشاريع. جميع التعليمات البرمجية المصدر لهذه المكتبة متاحة وقابلة للترجمة باستخدام Visual C ++ ، ولكن لم يتم تضمين الاختبار بعد.

من المتوقع أن يتم تطوير المشروع المفتوح على GitHub وتلقي طلبات السحب طرف ثالث بميزات وتصحيحات جديدة. لتصبح عضوًا ، يجب عليك توقيع اتفاقية تحويل رمز CLA.

يعتقد فريق MSVC أن الترحيل من STL إلى GitHub سيساعد عملاء Microsoft على مواكبة عملية التطوير وتجربة الابتكارات والمساعدة في تطوير المشروع.

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

على سبيل المثال ، يمكنك تبادل التعليمات البرمجية مع مكتبة libc ++ التي تعمل ضمن مشروع LLVM. تؤكد Microsoft أن STL و libc ++ لا يندمجان ، فهما لا يزالان مكتبات مختلفة ، بهياكل ومنصات مختلفة. ومع ذلك ، يمكنك الآن العمل على ميزات جديدة لكلتا المكتبتين دون القلق بشأن الترخيص

لا يُقصد بهذا التنفيذ للمكتبة القياسية التنافس مع التطبيقات المقدمة من قبل GCC أو Clang ، على سبيل المثال: لا يخطط مشروع Microsoft لدعم منصات أخرى غير Microsoft.

ومع ذلك ، يهدف المطورون إلى تطبيق عالي الجودة: متوافق مع المعايير وسريع جدًا.

التوافق الثنائي مضمون مع إصدارات Visual C ++ 2015 و 2017 (هذه المكتبة هي المكتبة المزودة بإصدار 2019) ، باستثناء الميزات التي تم تنفيذها قبل الانتهاء من المعيار (وثائق العمل والمواصفات الفنية لجنة معايير C ++).

يحتوي فرع WCBF02 (لا يزال داخليًا في Microsoft) على تغييرات غير متوافقة على المستوى الثنائي ، ولكن ليس على مستوى المصدر (لتحديث مكتبة قياسي ، ستحتاج إلى إعادة ترجمة مشروعاتك ، وليس فقط تغيير DLL). يحتوي هذا الفرع على عدد من التحسينات والإصلاحات وسيكون متاحًا للجمهور قريبًا.

على عكس بعض المشاريع التي توصف بأنها مجانية ، توصي Microsoft بالإبلاغ عن العيوب والمساهمة في رمز المشروع (في هذه الحالة ، سيكون من الضروري التوقيع على CLA لمنح Microsoft الحقوق اللازمة لإعادة توزيع المساهمات ، خاصة في حالة تغيير ترخيص المشروع ، وهي صعوبة واجهتها LLVM لعدة سنوات).

في المستقبل القريب، يجب على Microsoft إضافة مجموعة الاختبار الداخلية الخاصة بها إلى المشروع. يتم ترحيل قائمة الأخطاء التي تم تصعيدها داخليًا إلى GitHub. في الوقت الحالي ، يتم إجراء التجميع باستخدام MSBuild ، ولكن الترحيل إلى CMake قيد التقدم. جاري تنفيذ وظيفة C ++ 20.

يجب ألا تكون مكونات Visual C ++ الأخرى متاحة للتراخيص المجانية. تبرر Microsoft هذا الاختيار بالقول إن مكتبة C ++ القياسية مستقلة تمامًا عن المترجم (على عكس مكتبة C القياسية ، على سبيل المثال) وأنها تتطور بسرعة كبيرة مقارنة بمكونات المترجم الأخرى.

يقع رمز مصدر المحكمة الخاصة بلبنان متوفر الآن على جيثب حيث سيتمكن الأشخاص المهتمون من تنزيله أو يمكنهم فحص الكود الخاص به.

يحتوي مستودع GitHub على جميع الكود المصدري للمنتج ، نظام بناء CMake و README جديد بمزيد من المعلومات. المكتبة مرخصة بموجب ترخيص Apache 2.0 (باستثناء بعض الثنائيات).

من الواضح، هذا لا يؤثر على المطورين الذين يريدون فقط استخدام STL ، كما هو متاح للاستخدام في Visual Studio IDE. ومع ذلك ، يمكن للمطورين الذين يرغبون في المشاركة في تطوير STL القيام بذلك باستخدام مستودع GitHub.

لا يزال الانتقال إلى GitHub قيد التنفيذ ، ولكن يمكن الآن استنساخ الكود وبناءه.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.