Microsoft merilis kode dari pustaka C ++ standar yang ada di Visual Studio

Logo Microsoft

Pada konferensi CppCon 2019 yang telah dirayakan hari ini, Eksponen Microsoft mengambil kesempatan untuk mengumumkan pembukaan kode untuk implementasinya dari Perpustakaan C ++ standar (juga dikenal sebagai STL), yang merupakan bagian dari toolkit MSVC dan lingkungan pengembangan Visual Studio.

Perpustakaan mengimplementasikan kemampuan yang dijelaskan dalam standar C ++ 14 dan C ++ 17 saat ini, dan juga berkembang ke arah mendukung standar C ++ 20 di masa depan, mengikuti perubahan dalam draft kerja saat ini.

Menurut alasan mengapa orang-orang Microsoft telah memutuskan untuk mengambil langkah ini, dalam pernyataannya jelaskan:

Ada beberapa alasan mengapa kami melakukan ini, salah satunya adalah bekerja di STL di GitHub, ini akan memungkinkan klien kami untuk mengikuti perkembangan kami saat itu terjadi, menguji perubahan terbaru kami dan membantu kami meningkatkan permintaan ekstraksi kami dengan meninjau mereka.

Karena standardisasi C ++ semakin cepat, dan fitur yang lebih besar dipilih setiap tahun, kami percaya akan penting untuk menerima fitur utama sebagai kontribusi open source. (Misalnya, pustaka kronologis dan format C ++ 20 adalah kandidat potensial). Kami juga ingin berkontribusi lagi ke komunitas C ++ dengan memungkinkan implementasi fungsi utama kami. (Misalnya, C ++ 17 charconv)

Dengan itu Orang-orang Microsoft mengatakan bahwa mereka berencana untuk terus mengembangkan perpustakaan ini sebagai proyek terbuka yang sedang dikembangkan di GitHub yang akan menerima permintaan ekstraksi dari pengembang eksternal dengan koreksi dan penerapan fitur baru (untuk berpartisipasi dalam pengembangan, diperlukan perjanjian CLA untuk mengalihkan hak kepemilikan ke kode yang ditransfer).

Diamati itu Transfer pengembangan STL ke GitHub akan membantu pelanggan Microsoft Lacak kemajuan pengembangan, bereksperimenlah dengan perubahan terbaru dan bantu tinjau permintaan inovasi yang masuk.

Buka kodenya juga akan memungkinkan masyarakat untuk menggunakan implementasi yang sudah jadi peluang standar baru di proyek lain.

Tentang kode lisensi perpustakaan ini, Diusulkan sebagai terbuka di bawah lisensi Apache 2.0 dengan pengecualian untuk file biner yang memecahkan masalah termasuk perpustakaan runtime dalam komposisi file yang dapat dieksekusi yang dihasilkan.

Agar jelas, MSVC STL tidak bergabung dengan libc ++ karena mereka tetap perpustakaan yang berbeda.

Microsoft menjelaskan mengapa kode lisensi dipilih sedemikian rupa sehingga memungkinkan untuk bertukar kode dengan perpustakaan libc ++ dari proyek LLVM. STL dan libc ++ berbeda dalam representasi internal struktur data, tetapi jika mereka menginginkannya, pengembang libc ++ dapat membawa fungsionalitas STL yang menarik (misalnya, charconv) atau kedua proyek dapat bersama-sama mengembangkan beberapa inovasi.

MSVC STL didistribusikan di bawah lisensi Apache v2.0 dengan pengecualian LLVM, yang baru-baru ini dibuat oleh proyek Dentang / LLVM / libc ++.

Pengecualian yang ditambahkan ke lisensi Apache membatalkan persyaratan untuk menyebutkan penggunaan produk sumber ketika mengirimkan file biner yang dikompilasi dengan STL kepada pengguna akhir.

Lisensi open source yang permisif ini dipilih karena memiliki lisensi yang sama dengan libc ++ yang akan memudahkan berbagi kode antar pustaka. Agar jelas, MSVC STL tidak bergabung dengan libc ++; Mereka tetap perpustakaan yang berbeda yang mendukung platform yang berbeda dengan representasi struktur data yang berbeda.

Di sisi lain, salah satu tujuan utama dari proyek ini disebut kepatuhan penuh dengan persyaratan spesifikasi, yang menjamin kinerja tinggi, kemudahan penggunaan (debugging, diagnostik, alat deteksi kesalahan) dan kompatibilitas pada tingkat sumber dan ABI dengan versi sebelumnya dari Visual Studio 2015/2017.

Di antara area itu Microsoft tidak tertarik mengembangkan portabilitas ke platform lain dan menambahkan ekstensi khusus.

Jika Anda ingin tahu lebih banyak tentang pernyataan yang dibuat oleh Microsoft Anda dapat berkonsultasi di tautan berikut.

Pos terkait

Back to top button