Perancangan Python 3.14: Peralihan dari C ke Python dan Integrasi HPy Menarik Minat Komuniti

BigGo Editorial Team
Perancangan Python 3.14: Peralihan dari C ke Python dan Integrasi HPy Menarik Minat Komuniti

Komuniti pembangunan Python menunjukkan minat khusus terhadap dua perubahan penting yang dirancang untuk Python 3.14: penghijrahan fungsi-fungsi yang dilaksanakan dalam C kepada Python, dan kemungkinan penggunaan API C berasaskan HPy. Perubahan-perubahan ini, seperti yang digariskan dalam pelan hala tuju yang diterbitkan oleh pasukan Faster CPython, telah mencetuskan perbincangan dalam kalangan pembangun mengenai implikasinya terhadap prestasi dan keserasian.

Menulis Semula Fungsi C dalam Python

Salah satu perubahan paling ketara yang dirancang untuk Python 3.14 ialah peralihan beberapa fungsi terbina dalam daripada pelaksanaan C kepada Python. Ini termasuk fungsi-fungsi yang biasa digunakan seperti any, all, dan enumerate. Walaupun ini mungkin kelihatan bertentangan dari perspektif prestasi, langkah ini sebenarnya bertujuan untuk meningkatkan keupayaan pengoptimuman. Seperti yang dinyatakan dalam pelan hala tuju pasukan Faster CPython, perubahan ini akan membolehkan pengoptimum melihat merentasi sempadan panggilan fungsi, berpotensi membawa kepada peluang pengoptimuman yang lebih baik.

Integrasi HPy dalam Perancangan

Memandang ke hadapan menuju Python 3.15, pasukan pembangunan sedang mempertimbangkan penggunaan API C berasaskan HPy. Perubahan ini amat penting kerana ia berkait dengan pelaksanaan rujukan integer bertanda, yang boleh meningkatkan kecekapan memori dan prestasi untuk operasi integer secara ketara. API baharu ini pada mulanya akan digunakan secara dalaman, tetapi alat seperti Cython dan Pybind11 dijangka akan menggunakannya untuk mengelakkan overhed API tradisional berasaskan PyObject*.

Peningkatan Prestasi

Perubahan yang dirancang adalah sebahagian daripada inisiatif yang memberi tumpuan kepada prestasi yang merangkumi:

  • Peningkatan keupayaan pengkompil JIT dengan penjanaan kod dan pengoptimuman yang lebih baik
  • Mekanisme pengiraan rujukan yang lebih cekap
  • Pengumpulan kitaran yang lebih baik untuk pengurusan sampah
  • Pengoptimuman yang boleh dikembangkan untuk operasi aritmetik

Subinterpreter dan Pemprosesan Serentak

Pelan hala tuju ini juga merangkumi kerja penting pada subinterpreter, dengan rancangan untuk melaksanakan pelaksana kumpulan pentafsir yang serupa dengan pelaksana kumpulan bebenang dan proses sedia ada. Pembangunan ini boleh menyediakan peluang baharu untuk pemprosesan serentak dalam aplikasi Python, walaupun seperti yang ditunjukkan dalam perbincangan komuniti, penggunaan oleh pelayan web dan pemproses tugas latar masih di peringkat awal.

Perubahan-perubahan ini mewakili anjakan penting dalam seni bina dalaman Python, berpotensi menawarkan prestasi yang lebih baik sambil mengekalkan kebolehcapaian dan kemudahan penggunaan Python. Penghijrahan dari C ke Python untuk fungsi-fungsi tertentu, khususnya, menunjukkan langkah strategik ke arah memanfaatkan keupayaan pengoptimuman bahasa itu sendiri berbanding bergantung sepenuhnya pada pelaksanaan tahap C.

Rujukan: Berlakovitch, Felix, dan Stefan Brunthaler. 2024. Cross Module Quickening - The Curious Case of C Extensions. DOI: 10.4230/LIPIcs.ECOOP.2024.6