Python izstrādes valde (Steering Council) jūnijā apturēja jaunu darbu pie CPython eksperimentālā JIT kompilatora. Kļūdu labojumi un drošības ielāpi turpinās, bet jaunas funkcijas, optimizācijas un veiktspējas darbs vairs neienāk main zarā, kamēr kopiena nav pieņēmusi formālu Standards Track PEP. Ja tāda pusgada laikā neparādās, JIT kods no main tiek izņemts.
Iemesls nav tehnisks. Valde savā paziņojumā atzīst, ka izmaiņas ar šādu apjomu un ietekmi tika ielaistas main bez kārtīga procesa. JIT klāt jau kopš eksperimentālā laidiena, taču dokuments, kas to apraksta — PEP 744 — ir tikai informatīvs, nevis Standards Track. Tas nozīmē, ka kopiena to nekad nav formāli apstiprinājusi kā ceļu, pa kuru Python grib iet.
Kāpēc valde iejaucās
PEP 744 atstāj atklātus jautājumus, uz kuriem informatīvs dokuments nav paredzēts atbildēt. Valde uzskaita piecus: kas ilgtermiņā uzturēs JIT, vai ir veikts drošības pārskats, kā strādās atkļūdošana un ārpusprocesa rīki, kādas garantijas dod izpildvide un kādas saistības JIT uzliek tiem, kas Python pārpako un izplata.
Valde neapgalvo, ka JIT ir slikts. Tā saka, ka process netika ievērots tik stingri, cik šāda mēroga izmaiņa prasa.
Mēs neesam bijuši tik stingri procesa ievērošanā, cik šādas sarežģītības un ietekmes izmaiņa to pelna.
Ko nozīmē seši mēneši
Valde formāli pieprasa Standards Track PEP, ko kopiena var apspriest un ko valde var pieņemt vai noraidīt. Pusgads ir termiņš, kurā tam jānotiek. Valdes locekļi Pablo Galindo Salgado un Thomas Wouters gan precizēja, ka tas ir sākotnējs orientieris, nevis birokrātisks slēdzis — ja diskusija ievelkas, laiku var pārskatīt.
Galindo atzina, ka lēmums izstrādātājus noliek neērtā pozīcijā: darba apturēšana spiež JIT komandu ātri sagatavot jaunu PEP, bet steiga neatstāj kopienai laiku to kārtīgi izrunāt. Diego Russo pieteicās koordinēt jaunā dokumenta izstrādi.
PEP 836: ceļa karte uz atbalstītu JIT
Atbilde parādījās ātri. 2. jūlijā tika iesniegts PEP 836 ar nosaukumu “JIT Go Brrr”, ko raksta Savannah Ostrowski, Ken Jin un Brandt Bucher. Statuss — melnraksts, mērķa versija — Python 3.16. Dokuments neprasa JIT pieņemt uzreiz. Tā vietā tas piedāvā aptuveni divarpus gadu ceļu ar konkrētiem veiktspējas un savietojamības sliekšņiem, kas jāsasniedz, pirms JIT kļūst par atbalstītu, ne vairs eksperimentālu daļu.
Pirmajā gadā (Python 3.16 beta) plāns paredz pārcelt kompilatora priekšgalu no izsekošanas ierakstīšanas uz metožu kompilāciju, panākt savietojamību ar free-threading režīmu, uzlabot atkļūdošanas un profilēšanas rīkus un nodrošināt atkārtojamu JIT izplatīšanu. Minimums šajā posmā — 5% veiktspējas pieaugums salīdzinājumā ar interpretatoru.
Otrajā gadā (Python 3.17 beta) latiņa ceļas: vismaz 20% ģeometriskā vidējā uzlabojums pyperformance testos JIT plus free-threading kombinācijai pret free-threading interpretatoru vienu pašu. Pusgadu vēlāk (3.17 laidiena kandidāts) paredzēts pārbaudīt savietojamību ar populārākajām PyPI pakotnēm un salabot to, kas plīst.
Cik ātrs JIT ir šodien
Pēc PEP 836 datiem, kas mērīti šā gada jūnijā, pašreizējais JIT dod 4,7–12,6% ģeometrisko vidējo paātrinājumu atkarībā no platformas un konfigurācijas. Tas ir izslēgts pēc noklusējuma; ieslēdz ar vides mainīgo PYTHON_JIT=1. Tehnika ir copy-and-patch — kompilators salīmē iepriekš sagatavotus mašīnkoda gabalus, tāpēc pati JIT palaišana ir lēta.
PEP 836 20% mērķis ir liels lēciens no šodienas skaitļiem, un tas nav nejaušs. Free-threading Python (bez GIL) zaudē daļu veiktspējas, ko GIL agrāk deva; JIT ir viens no ceļiem to atgūt. Tāpēc dokuments free-threading integrāciju sauc par galveno veiktspējas fokusu.
Ko tas maina praksē
Tiem, kas Python lieto ražošanā, tuvākais nemainās neko: JIT joprojām ir eksperimentāls un izslēgts. Python 3.15, kurā JIT ir klāt, ir funkciju iesaldēšanas fāzē un iznāk oktobrī, kā ziņo The Register. Tur JIT paliek tāds, kāds ir.
Interesantākais notiek ap PEP 836. Ja to pieņem, JIT dabū skaidrus mērķus un termiņus, pēc kuriem to var vērtēt. Ja pusgada laikā apstiprināta PEP nav, kods no main pazūd un izstrāde pārceļas kaut kur citur. PEP 836 pašlaik ir melnraksta statusā, un valde to vēl nav pieņēmusi.
Avoti
- An announcement from the Steering Council regarding the JIT project — discuss.python.org
- PEP 836 – JIT Go Brrr: The Path to a Supported JIT Compiler for CPython
- PEP 744 – JIT Compilation
- Python JIT compiler project under threat after steering council says proper process wasn’t followed — The Register
- Python’s JIT Faces Some Challenges and Other News for July 2026 — Real Python
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.