Microsoft mengeluarkan kod dari pelaksanaan STL, pustaka C ++ standard

Sumber terbuka STL

Persidangan CppCon 2019 adalah tempat untuk merealisasikan pengumuman besar dari Microsoft, baik dalam dirinya melancarkan pengeluaran kod sumber perpustakaan STL Standard C ++ disertakan dengan Visual C ++ yang pada pengumuman tersedia di bawah lesen percuma, khususnya Apache 2.0 (yang cukup permisif).

libcxx, pustaka standard LLVM / Clang C ++, sudah menggunakan lesen ini, yang seharusnya memudahkan pertukaran kod antara projek. Semua kod sumber untuk perpustakaan ini tersedia dan sudah dapat dikompilasi dengan Visual C ++, tetapi ujian belum disertakan.

Projek terbuka dijangka dikembangkan di GitHub dan menerima permintaan tarik pihak ketiga dengan ciri dan tambalan baru. Untuk menjadi ahli, anda mesti menandatangani perjanjian pemindahan kod CLA.

Pasukan MSVC percaya bahawa penghijrahan dari STL ke GitHub akan membantu pelanggan Microsoft mengikuti perkembangan semasa, bereksperimen dengan inovasi, dan membantu mengembangkan projek.

Sebaliknya, pemaju akan dapat menggunakan pelaksanaan standard baru yang luar biasa dalam projek lain.

Sebagai contoh, anda boleh menukar kod dengan perpustakaan libc ++ yang berfungsi dalam projek LLVM. Microsoft menekankan bahawa STL dan libc ++ tidak bergabung, mereka masih perpustakaan yang berbeza, dengan struktur dan platform yang berbeza. Walau bagaimanapun, sekarang anda boleh menggunakan ciri baru untuk kedua-dua perpustakaan tanpa perlu risau tentang perlesenan

Pelaksanaan perpustakaan standard ini tidak dimaksudkan untuk bersaing dengan implementasi yang disediakan oleh GCC atau Clang, misalnya: projek Microsoft tidak berencana untuk menyokong platform lain daripada Microsoft.

Walau bagaimanapun, pembangun bertujuan untuk pelaksanaan berkualiti tinggi: mematuhi standard dan sangat pantas.

Keserasian binari dijamin dengan Visual C ++ versi 2015 dan 2017 (Perpustakaan ini adalah yang disediakan dengan versi 2019), kecuali untuk ciri-ciri yang telah dilaksanakan sebelum penyelesaian standard (dokumen kerja dan spesifikasi teknikal Jawatankuasa Piawaian C ++).

Cabang WCBF02 (masih dalaman untuk Microsoft) mengandungi perubahan yang tidak serasi pada tahap binari, tetapi tidak pada tahap sumber (untuk kemas kini perpustakaan standard, anda perlu menyusun semula projek anda, bukan hanya mengubah DLL). Cabang ini mengandungi sejumlah penambahbaikan dan perbaikan dan akan tersedia untuk umum tidak lama lagi.

Tidak seperti beberapa projek yang digambarkan sebagai percuma, Microsoft mengesyorkan melaporkan kerosakan dan menyumbang kepada kod projek (Dalam kes ini, perlu menandatangani CLA untuk memberi Microsoft hak yang diperlukan untuk pengagihan semula sumbangan, terutamanya sekiranya lesen projek berubah, kesukaran yang dihadapi oleh LLVM selama beberapa tahun).

Dalam masa terdekat, Microsoft harus menambahkan rangkaian ujian dalamannya ke projek tersebut. Senarai bug yang meningkat secara dalaman sedang dipindahkan ke GitHub. Pada masa ini penyusunan dilakukan dengan MSBuild, tetapi migrasi ke CMake sedang berlangsung. Fungsi C ++ 20 sedang dilaksanakan.

Komponen Visual C ++ yang lain tidak boleh tersedia untuk lesen percuma. Microsoft membenarkan pilihan ini dengan menyatakan bahawa pustaka C ++ standard cukup kompilator bebas (berbanding perpustakaan C standard, misalnya) dan ia berkembang dengan sangat pantas berbanding dengan komponen penyusun lain.

Kod sumber STL terletak kini boleh didapati di Github di mana orang yang berminat akan dapat memuat turunnya atau dapat memeriksa kodnya.

Repositori GitHub mempunyai semua kod sumber untuk produk, sistem pembuatan CMake dan README baru dengan lebih banyak maklumat. Perpustakaan dilesenkan di bawah lesen Apache 2.0 (kecuali beberapa binari).

Jelas sekali, ini tidak mempengaruhi pemaju yang hanya mahu menggunakan STL, kerana ia tersedia untuk digunakan di Visual Studio IDE. Walau bagaimanapun, pembangun yang ingin mengambil bahagian dalam pembangunan STL boleh melakukannya menggunakan repositori GitHub.

Pindah ke GitHub masih dijalankan, tetapi kodnya kini dapat diklon dan dibina.


Kandungan artikel mematuhi prinsip kami etika editorial. Untuk melaporkan ralat, klik di sini.

Menjadi yang pertama untuk komen

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan.

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

bool(benar)