مایکروسافت کتابخانه استاندارد C++ را که همراه با ویژوال استودیو ارائه شده است، منبع باز کرد

در کنفرانس CppCon 2019 که این روزها برگزار می شود، مایکروسافت اعلام کرد در مورد باز کردن کد اجرای وی از کتابخانه استاندارد C++ (STL، C++ Standard Library)، که بخشی از جعبه ابزار MSVC و محیط توسعه ویژوال استودیو است. این کتابخانه ویژگی های توصیف شده در استانداردهای C++14 و C++17 فعلی را پیاده سازی می کند، و همچنین در حال توسعه به سمت پشتیبانی از استاندارد آینده C++20، به دنبال تغییرات در پیش نویس کاری فعلی است. کد باز کن تحت مجوز Apache 2.0 با استثنا برای فایل های باینری که مشکل گنجاندن کتابخانه های زمان اجرا در فایل های اجرایی تولید شده را حل می کند.

توسعه این کتابخانه در آینده برنامه ریزی شده است که به عنوان یک پروژه باز توسعه یافته در GitHub با پذیرش درخواست های کشش از توسعه دهندگان شخص ثالث با اصلاحات و اجرای ویژگی های جدید انجام شود (شرکت در توسعه مستلزم امضای توافق نامه CLA در مورد انتقال است. حقوق مالکیت به کد منتقل شده). اشاره شده است که انتقال توسعه STL به GitHub به مشتریان مایکروسافت کمک می کند تا پیشرفت توسعه را پیگیری کنند، آخرین تغییرات را آزمایش کنند و به بررسی درخواست های دریافتی برای اضافه کردن نوآوری ها کمک کند.

منبع باز همچنین به جامعه اجازه می دهد تا از پیاده سازی های آماده از ویژگی های استانداردهای جدید در پروژه های دیگر استفاده کند. به عنوان مثال، مجوز کد برای ارائه قابلیت اشتراک گذاری کد با کتابخانه انتخاب شده است libc++ از پروژه LLVM STL و libc++ در نمایش داخلی ساختارهای داده متفاوت هستند، اما در صورت تمایل، توسعه دهندگان libc++ می توانند عملکرد مورد علاقه STL (به عنوان مثال، charconv) را انتقال دهند یا هر دو پروژه به طور مشترک می توانند برخی از نوآوری ها را توسعه دهند. استثناهایی که به مجوز آپاچی اضافه شده است، الزام استفاده از محصول اصلی را هنگام تحویل باینری های کامپایل شده با STL به کاربران نهایی حذف می کند.

اهداف کلیدی پروژه شامل انطباق کامل با الزامات مشخصات، اطمینان از عملکرد بالا، سهولت استفاده (ابزارهای اشکال زدایی، تشخیص، تشخیص خطا) و سازگاری در سطح کد منبع و ABI با نسخه های قبلی ویژوال استودیو 2015/2017 است. از جمله زمینه هایی که مایکروسافت علاقه ای به توسعه آنها ندارد، انتقال به پلتفرم های دیگر و افزودن افزونه های غیر استاندارد است.

منبع: opennet.ru

اضافه کردن نظر