Python je programski jezik na visoki ravni.
Po letu razvoja, Napovedana je bila izdaja stabilne različice in tudi začetek faze testiranja alfa programskega jezika Python 3.12 in Python 3.13 (oziroma). Omenjeno je, da bo ta nova veja Python 3.12 podprta leto in pol, nato pa bodo še tri leta in pol ustvarjeni popravki za odpravo ranljivosti.
Predstavljena nova različica Pythona 3.12 vsebuje izboljšave v prilagodljivost analize f-nizov. S to izboljšavo zdaj številne omejitve lahko pustimo ob strani, saj lahko na primer zdaj vsebuje kateri koli veljaven izraz v Pythonu, vključno z večvrstičnimi izrazi, komentarji, poševnicami nazaj in ubežnimi zaporedji Unicode. Poleg tega notranji nizi zdaj omogočajo ponovno uporabo istih narekovajev, tj. dvojne narekovaje je zdaj mogoče znova uporabiti znotraj ne da bi morali spremeniti v enojne narekovaje.
Na primer:
f"""{f'''{f'{f"{1+1}"}'}'''}"""
Zdaj je možno poljubno ugnezditi:
f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
Druga izstopajoča sprememba je podpora za izolirane podtolmače in ločena globalna zaklepanja, ki so namenjeni povečanju učinkovitosti uporabe virov v večjedrnih sistemih, saj za različne tolmače znotraj procesa CPython omogoča hkratno izvajanje več tolmačev v procesu. V sedanji obliki je funkcija trenutno na voljo samo prek C-API (podpora za Python API se bo pojavila v naslednji večji veji).
Poleg tega je poudarjeno tudi, daPovečana je informativnost sporočil o napakah in nabor izjem je bil razširjen in ponuja priporočila za odpravo tipkarskih napak. Zdaj so na primer prikazani predlogi za uvoz pozabljenih modulov standardne knjižnice in predlogi za predpono »sam«.
Dodana možnost uporabe protokola medpomnilnika v kodi Python. Razrede, ki zagotavljajo metodo "__buffer__()", je zdaj mogoče uporabiti kot vrste, ki delujejo neposredno na binarnih podatkih v pomnilniku.
Modul sys.monitoring je predlagan za odpravljanje napak in profiliranje, omogoča spremljanje dogodkov v CPython, kot so klici, vrnitve funkcij, izvajanje poljubnih vrstic kode, izjeme in prehodi z minimalnimi stroški.
Tolmač izvaja podporo za podsistem zmogljivosti jedra Linuxa, ki omogoča določanje imen funkcij Python pri profiliranju s pomočjo pripomočka za zmogljivost (prej so bila v sledovih določena samo imena funkcij C).
Glede izboljšav zmogljivosti je omenjeno, da optimizacije se nadaljujejo, s katero Doseženo je bilo skupno povečanje zmogljivosti, ocenjeno na 5 %., je še dodano eksperimentalna podpora za binarni optimizator BOLT do procesa gradnje, s čimer se je zmogljivost povečala za 1-5 %, medtem ko se je zmogljivost paketa asyncio znatno izboljšala (nekateri testi kažejo 75-odstotno pospešitev).
Implementirana je bila vgrajena razširitev razumevanja seznamov, ki pospeši delo z razumevanjem seznamov do dvakrat (za kodo, ki aktivno uporablja razumevanje seznamov, je testiranje pokazalo skupno povečanje zmogljivosti za 11 %).
Za izboljšanje varnosti vgrajene izvedbe Algoritmi SHA1, SHA3, SHA2-384, SHA2-512 in MD5 v hashlibu so bili zamenjani s formalno preverjenimi možnostmi iz projekta HACL* (vgrajene implementacije se uporabljajo le, če OpenSSL ni na voljo).
Od druge spremembe ki izstopajo:
- Modul ima razširjeno podporo za Windows.
- Python implementira zaščito pred prelivanjem skladov.
Izdelava razreda asyncio.Task je bila pospešena. - Velikost objektov Unicode je bila zmanjšana za 8 na 16 bajtov.
- Operacije z regularnimi izrazi re.sub(), re.subn() in re.Pattern so bile pospešene.
- Izvajanje preverjanj isinstance() za nekatere protokole je bilo pospešeno za 2- do 20-krat.
- Funkciji tokenize.tokenize() in tokenize.generate_tokens() sta bili občutno (v nekaterih testih do 64 %) pospešeni.
- Nalaganje atributov in klicanje metode super() sta bila pospešena.
- Za generične razrede in funkcije je bila predlagana nova, bolj kompaktna sintaksa opombe tipa.
- Modul spletnega brskalnika ne podpira več starejših brskalnikov, vključno z Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird in Firefox do različice 36.
- V pripravah na prihodnje optimizacije je bila spremenjena notranja predstavitev celih števil.
Nenazadnje, kot rečeno, se je začelo alfa testiranje Pythona 3.13, v katerem se je pojavil način prevajanja CPython brez globalnega zaklepanja tolmača (GIL, globalna ključavnica tolmača).
Podružnica Python 3.13 bo v alfa različici sedem mesecev, med katerim bodo dodane nove funkcije in odpravljene napake v skladu z novim urnikom razvoja, delo na novi veji se začne pet mesecev pred izdajo prejšnje veje in do takrat, ko naslednja različica doseže fazo testiranja alfa.
Po tem bodo beta različice testirane tri mesece, med katerimi bo prepovedano dodajanje novih funkcij, vsa pozornost pa bo namenjena odpravljanju napak. V zadnjih dveh mesecih pred izdajo bo podružnica v fazi kandidata za izdajo, kjer bo potekala končna stabilizacija.
Končno ja te zanima več o tem, podrobnosti lahko preverite v naslednja povezava.