Python adalah bahasa pemrograman tingkat tinggi.
Berita baru-baru ini pecah bahwa Komite Pengarah Proyek Python telah mengumumkan keinginannya untuk menyetujui Proposal ekstensi bahasa Python «PEP-0703″, menjadikan kunci juru bahasa global opsional di CPython dan yang pada dasarnya menentukan penyematan mode kompilasi CPython tanpa Kunci Juru Bahasa Global (GIL).
PEP-0703 mendefinisikan untuk berhenti menggunakan GIL secara default, tetapi tambahkan opsi build “–sin-gil” untuk menonaktifkannya. Apa kabarmul Mode baru diharapkan dapat menyelesaikan masalah dengan paralelisasi operasi pada sistem multi-core, yang disebabkan oleh fakta bahwa kunci global tidak mengizinkan akses paralel ke objek bersama dari utas yang berbeda.
Disebutkan bahwa dalam jangka panjang (setelah 5 tahun), shell direncanakan untuk diubah secara default menjadi hanya dalam mode non-penguncian global, sekaligus menghentikan dukungan untuk kompilasi dengan GIL.
Terima kasih semua telah menanggapi survei tentang proposal no-GIL. Jelas bahwa sentimen umum positif, baik untuk gagasan umum maupun untuk PEP 703 pada khususnya. Dewan Direksi juga sangat positif pada keduanya. Kami bermaksud untuk menerima PEP 703, meskipun kami masih mengerjakan detail penerimaannya.
Seperti yang telah kami lakukan beberapa kali di masa lalu, kami ingin mengomunikasikan niat kami untuk menerima PEP bersama dengan pemikiran kami saat ini tentang detail terkait penerimaan.
Selain itu, Disebutkan, perubahan yang rencananya akan dilakukan dalam tiga tahap, yaitu jangka pendek, menengah dan panjang. Mengingat bahwa pada tahap pertama, menonaktifkan GIL secara default tidak praktis karena overhead yang terkait dengan perubahan pada pengumpul sampah, sistem manajemen memori, dan primitif untuk mengatur kunci. Misalnya, karena penggunaan penghitungan referensi untuk isolasi utas, ada penurunan kinerja untuk skrip utas tunggal (dalam rangkaian pengujian pyperformance sebesar 10%). Pada saat yang sama, GIL mungkin perlu dinonaktifkan dalam komputasi ilmiah, yang kurangnya paralelisasi merupakan masalah yang lebih serius daripada kecepatan linier eksekusi kode.
Pada tahap kedua, pada dasarnya akan ditunggu konfirmasinya. dan bahwa ada dukungan yang cukup dari masyarakat sehingga penggunaan "non-GIL layak" dan pastikan build tanpa GIL didukung tetapi bukan default.
Pada tahap terakhir, no-GIL sudah menjadi nilai default dan semua sisa GIL akan dihapus (tanpa merusak kompatibilitas mundur yang tidak perlu).
Hal itu diamati pekerjaan untuk menjauh dari GIL akan dilakukan dengan sangat hati-hati agar tidak mengulangi kesalahan tersebut apa yang terjadi saat promosi Python 3: Build non-GIL perlu memastikan kompatibilitas dengan versi Python yang lebih lama, dan setiap perubahan kode pihak ketiga yang diperlukan untuk bekerja pada build non-GIL juga harus berfungsi pada build GIL.
Tidak ada rencana untuk mengubah nomor versi menjadi Python 4 untuk build non-GIL, karena mereka akan mempertahankan kompatibilitas ABI.
Sepanjang proses, kami (pengembang inti, bukan hanya SC) perlu mengevaluasi kembali kemajuan dan jadwal yang disarankan. Kami tidak ingin ini menjadi pertarungan kompatibilitas mundur sepuluh tahun lagi, dan kami ingin dapat membatalkan PEP 703 dan menemukan solusi lain jika tampaknya menjadi masalah, jadi kami perlu memeriksa secara teratur apakah melanjutkan pekerjaan itu sepadan.
Kami berharap ini memberikan kejelasan tentang masa depan PEP saat kami menyusun detail penerimaan yang tepat. SC akan bekerja untuk menyelesaikan penerimaan dalam beberapa minggu mendatang.
Sebelum transisi penuh ke build non-GIL, kami berencana untuk mendapatkan dukungan komunitas penuh untuk build ini, serta menyediakan API C dan API Python tambahan untuk mengaktifkan multithreading yang aman dalam kode yang ada.
Terakhir, seperti yang telah disebutkan, transisi ke tahap ketiga diharapkan dapat terjadi setidaknya dalam 5 tahun dan kemungkinan tanggal untuk PEP-0703 adalah rilis Python 3.13, dijadwalkan untuk musim gugur mendatang.
Jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat memeriksa detailnya Di tautan berikut.