أصدرت Microsoft رمز مكتبة C ++ القياسي الموجود في Visual Studio

شعار مايكروسوفت

شعار Microsoft

في مؤتمر CppCon 2019 الذي تم الاحتفال به هذه الأيام ، انتهز دعاة مايكروسوفت الفرصة للإعلان عن فتح الكود لتنفيذه من مكتبة C ++ القياسية (المعروف أيضًا باسم STL) ، وهو جزء من MSVC Toolkit وبيئة تطوير Visual Studio.

تنفذ المكتبة القدرات الموضحة في معايير C ++ 14 و C ++ 17 الحالية ، كما تم تطويره في اتجاه دعم معيار C ++ 20 المستقبلي ، بعد التغييرات في مسودة العمل الحالية.

سيجون الأسباب التي دفعت الأشخاص في Microsoft إلى اتخاذ هذه الخطوة، في البيان يشرحون:

هناك عدة أسباب وراء قيامنا بذلك ، أحدها هو العمل على STL على GitHub ، وهذا سيسمح لعملائنا بمتابعة تطورنا فور حدوثه ، واختبار أحدث التغييرات ، ومساعدتنا على تحسين طلبات السحب من خلال مراجعتها.

مع تسارع توحيد C ++ ، والتصويت على ميزات أكبر كل عام ، نعتقد أنه سيكون من المهم قبول الميزات الأساسية كمساهمات مفتوحة المصدر. (على سبيل المثال ، يعد تنسيق C ++ 20 والمكتبات الزمنية من المرشحين المحتملين.) نريد أيضًا المساهمة مرة أخرى في مجتمع C ++ من خلال جعل تنفيذ وظائفنا الأساسية ممكنًا. (على سبيل المثال ، charconv من C ++ 17)

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

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

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

حول ترخيص كود هذه المكتبة ، يُقترح على أنه مفتوح بموجب ترخيص Apache 2.0 مع استثناءات للملفات الثنائية التي تحل مشكلة تضمين مكتبات وقت التشغيل في تكوين الملفات القابلة للتنفيذ التي تم إنشاؤها.

لنكون واضحين ، لا يتم دمج MSVC STL مع libc ++ لأنها لا تزال مكتبات منفصلة.

تشرح Microsoft سبب ترخيص الكود تم تحديده بطريقة تسمح بتبادل الكود مع مكتبة libc ++ الخاصة بمشروع LLVM. تختلف STL و libc ++ في التمثيل الداخلي لهياكل البيانات ، ولكن إذا رغبوا في ذلك ، يمكن لمطوري libc ++ نقل وظائف STL المثيرة للاهتمام (مثل charconv) أو يمكن لكلا المشروعين تطوير بعض الابتكارات بشكل مشترك.

يتم توزيع MSVC STL بموجب ترخيص Apache v2.0 مع استثناءات LLVM ، والتي تم إنشاؤها مؤخرًا بواسطة مشروع Clang / LLVM / libc ++.

تلغي الاستثناءات المضافة إلى ترخيص Apache مطلب ذكر استخدام المنتج المصدر عند تسليم ثنائيات مجمعة من STL للمستخدمين النهائيين.

تم اختيار ترخيص المصدر المفتوح هذا لأن لديه نفس ترخيص libc ++ مما يسهل مشاركة التعليمات البرمجية بين المكتبات. للتوضيح ، لم يتم دمج MSVC STL مع libc ++ ؛ لا تزال مكتبات متميزة تدعم أنظمة أساسية مختلفة بتمثيلات بنية بيانات مختلفة.

من ناحية أخرى ، فإن أحد الأهداف الرئيسية للمشروع يسمى الامتثال الكامل للمتطلبات المواصفات ، وضمان الأداء العالي ، وسهولة الاستخدام (تصحيح الأخطاء ، والتشخيصات ، وأدوات اكتشاف الأخطاء) ، وتوافق المصدر ومستوى ABI مع الإصدارات السابقة من Visual Studio 2015/2017.

من بين المجالات التي لا تهتم Microsoft بتطوير قابلية النقل إلى الأنظمة الأساسية الأخرى وإضافة ملحقات مخصصة.

إذا كنت تريد معرفة المزيد عن البيان الصادر عن Microsoft ، فيمكنك الرجوع إليه في الرابط التالي.


اترك تعليقك

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

*

*

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