Microsoft membuat pustaka standar C++ bersumber terbuka yang disertakan dengan Visual Studio

Pada konferensi CppCon 2019 yang berlangsung hari ini, Microsoft mengumumkan tentang membuka kode implementasi C++ Standard Library (STL, C++ Standard Library), yang merupakan bagian dari toolkit MSVC dan lingkungan pengembangan Visual Studio. Pustaka ini mengimplementasikan fitur-fitur yang dijelaskan dalam standar C++14 dan C++17 saat ini, dan juga berkembang menuju dukungan untuk standar C++20 masa depan, mengikuti perubahan dalam draf kerja saat ini. Kode terbuka di bawah lisensi Apache 2.0 dengan pengecualian untuk file biner yang memecahkan masalah penyertaan perpustakaan runtime dalam file executable yang dihasilkan.

Pengembangan perpustakaan ini kedepannya direncanakan akan dilakukan sebagai proyek terbuka yang dikembangkan di GitHub, menerima pull request dari pengembang pihak ketiga dengan koreksi dan implementasi fitur-fitur baru (partisipasi dalam pengembangan memerlukan penandatanganan perjanjian CLA tentang transfer tersebut. hak milik atas kode yang ditransfer). Perlu dicatat bahwa transfer pengembangan STL ke GitHub akan membantu pelanggan Microsoft melacak kemajuan pengembangan, bereksperimen dengan perubahan terbaru, dan membantu meninjau permintaan yang masuk untuk menambahkan inovasi.

Open source juga akan memungkinkan komunitas untuk menggunakan implementasi fitur-fitur standar baru yang sudah jadi di proyek lain. Misalnya, lisensi kode dipilih untuk memberikan kemampuan berbagi kode dengan perpustakaan libc++ dari proyek LLVM. STL dan libc++ berbeda dalam representasi internal struktur data, namun jika diinginkan, pengembang libc++ dapat mem-porting fungsionalitas yang diinginkan dari STL (misalnya, charconv) atau kedua proyek dapat bersama-sama mengembangkan beberapa inovasi. Pengecualian yang ditambahkan ke lisensi Apache menghapus persyaratan untuk mengutip penggunaan produk asli saat mengirimkan binari yang dikompilasi dengan STL ke pengguna akhir.

Sasaran utama proyek ini mencakup kepatuhan penuh terhadap persyaratan spesifikasi, memastikan kinerja tinggi, kemudahan penggunaan (alat debugging, diagnostik, deteksi kesalahan) dan kompatibilitas pada tingkat kode sumber dan ABI dengan rilis Visual Studio 2015/2017 sebelumnya. Di antara area yang tidak tertarik untuk dikembangkan oleh Microsoft adalah porting ke platform lain dan menambahkan ekstensi non-standar.

Sumber: opennet.ru

Tambah komentar