Python je programski jezik na visoki ravni.
Nedavno je odjeknila novica, da je Usmerjevalni odbor projekta Python je objavil svojo željo po odobritvi Predlog razširitve jezika Python «PEP-0703″, zaradi česar je globalno zaklepanje tolmača neobvezno v CPythonu in ki v bistvu definira vdelavo načina prevajanja CPython brez Global Interpreter Lock (GIL).
PEP-0703 privzeto določa prenehanje uporabe GIL, vendar dodajte možnost gradnje »–sin-gil«, da jo onemogočite. kako sil Novi način naj bi rešil težavo s paralelizacijo operacij v večjedrnih sistemih, ki jih povzroča dejstvo, da globalno zaklepanje ne dovoljuje vzporednega dostopa do skupnih objektov iz različnih niti.
Omenjeno je, da dolgoročno (po 5 letih) načrtuje se, da bo lupina privzeto spremenjena samo v globalnem načinu brez zaklepanja, hkrati pa opušča podporo za prevajanje z GIL.
Hvala vsem za odziv na anketo o predlogu brez GIL. Jasno je, da je splošno razpoloženje pozitivno, tako za splošno zamisel kot zlasti za PEP 703. Upravni odbor je tudi v veliki meri pozitiven glede obeh. Nameravamo sprejeti PEP 703, čeprav še vedno urejamo podrobnosti o sprejemu.
Kot že nekajkrat v preteklosti, želimo sporočiti našo namero, da sprejmemo PEP, skupaj z našim trenutnim razmišljanjem o podrobnostih, povezanih s sprejemom.
Poleg tega, Omenjenih sprememb, ki jih predvidevajo v treh fazah, ki so kratkoročni, srednjeročni in dolgoročni. Glede na to v prvi fazi je privzeto onemogočanje GIL nepraktično zaradi režijskih stroškov, povezanih s spremembami zbiralnika smeti, sistema za upravljanje pomnilnika in primitivov za organiziranje ključavnic. Na primer, zaradi uporabe štetja sklicev za izolacijo niti pride do padca zmogljivosti za skripte z eno nitjo (v zbirki testov pyperformance za 10 %). Hkrati bo morda treba onemogočiti GIL v znanstvenem računalništvu, za katerega je pomanjkanje paralelizacije resnejši problem kot linearna hitrost izvajanja kode.
V drugi fazi se bo v bistvu čakalo na potrditev. in da obstaja zadostna podpora skupnosti, tako da uporaba "non-GIL je izvedljiva" in se prepričajte, da je graditev brez GIL podprta, vendar ni privzeta.
V zadnji fazi bo no-GIL že privzeta vrednost in vsi ostanki GIL bodo odstranjeni (brez nepotrebne prekinitve združljivosti za nazaj).
Opaziti je, da delo za odmik od GIL bo potekalo zelo previdno, da ne bi ponovili napake kaj se je zgodilo pri promociji Python 3: Zgradba brez GIL bo morala zagotoviti združljivost s starejšimi različicami Pythona in vse spremembe kode tretjih oseb, ki so potrebne za delovanje na zgradbah brez GIL, bi morale delovati tudi na zgradbah GIL.
Ni načrtov za preštevilčenje različic v Python 4 za zgradbe, ki niso GIL, saj bodo ohranile združljivost z ABI.
V celotnem procesu bomo morali mi (glavni razvijalci, ne samo SC) ponovno oceniti napredek in predlagane časovne okvire. Nočemo, da bi to postal še en desetletni boj za združljivost s prejšnjimi različicami, in želimo imeti možnost preklicati PEP 703 in najti drugo rešitev, če se zdi, da postane problematično, zato moramo redno preverjati, ali se nadaljnje delo splača.
Upamo, da bo to zagotovilo nekaj jasnosti glede prihodnosti PEP, medtem ko pripravljamo natančne podrobnosti o sprejemu. Nadzorni odbor si bo v prihodnjih tednih prizadeval dokončati sprejem.
Pred popolnim prehodom na gradnje brez GIL nameravamo doseči popolno podporo skupnosti za te gradnje ter zagotoviti dodatne API-je C in API-je Python, da omogočimo varno večnitnost v obstoječi kodi.
Nazadnje, kot že omenjeno, se pričakuje, da se lahko prehod na tretjo stopnjo zgodi v vsaj 5 letih in verjeten datum za PEP-0703 je izdaja Python 3.13, predvidena za naslednjo jesen.
Če ste zanima več o tem, lahko preverite podrobnosti V naslednji povezavi.