Programmeerimiskeele Python 3.14 uus versioon

Aasta arenduse jÀrel on avaldatud oluline programmkeele Python 3.14 versioon. Uue haru toetamine kestab poolteist aastat, mille jÀrel kolm ja pool aastat antakse sellele turvaparandusi.

Uute funktsioonide hulgas, mis on lisatud Python 3.14-sse (1, 2, 3):

  • On rakendatud ametlik toetus GIL-i (globaalne tĂ”lgendaja lukustus) vabale CPython kompileerimisele. GIL-ita kompileerimine kĂ”rvaldab probleemid mitme lĂ”imega operatsioonide töötlemisel, kuna globaalne lukustus ei lase erinevatesse lĂ”imedesse jagatud objektide juurde pÀÀseda. GIL-i vĂ€ljalĂŒlitamine toob kaasa tĂ€iendavaid kulusid, mis on pĂ”hjustatud muudatustest jÀÀtme kogumise, mĂ€lu haldamise ja lukustamise primitiivides. NĂ€iteks vĂ”ib eralduse tĂ”ttu, et kasutatakse viidete arvu, et vĂ€ltida lĂ”imede vahelisi sideid, ĂŒhe lĂ”imega stsenaariumide jĂ”udlus vĂ€heneda umbes 10%. Samas vĂ”ivad sellised kulud kompenseerida operatsioonide ĂŒhele lĂ”imele jagamisel.
  • T-strings (litraalid prefiksiga ‘t’) toetamist on lisatud, võimaldades kasutada f-stringele sarnast süntaksit, et luua kohandatud malliprotsessoreid stringides. Erinevalt f-stringidest tagastavad t-stringid objekti, mis hoiab eraldi staatilisi stringiandmeid ja asendatavaid väärtusi. Eraldi salvestamine võimaldab siduda kohandatud protsessoreid, mis mõjutavad ainult asendatavaid väärtusi. Näiteks saab lisada protsessori, mis muundab asendatava väärtuse suurteks tähtedeks või mille ülesanne on erimärkide escaping, kui tõstetakse välistest andmetest stringi. variety = ‘Stilton’ template = t’Proovige mõned {variety} juustud!’ print(list(template)) print(lower_upper(template)) [‘Proovige mõned ‘, Interpolation(‘Stilton’, ‘variety’, None, »), ‘ juustud!’] Proovige mõned STILTON juustud! attributes = {‘src’: ‘limburger.jpg’, ‘alt’: ‘ilus juust’} template = t'<img {attributes}>print (html(template)) <img src="»limburger.jpg»" alt="»ilus" cheese» />
  • Standardraamatukogusse on lisatud moodul concurrent.interpreters, mis vĂ”imaldab ĂŒhes protsessis korraga kĂ€ivitada mitmeid isoleeritud Python'i interpretaatoreid. Varasemalt oli see vĂ”imalus saadaval ainult C-API kaudu. Mitme interpretaatori samal ajal kĂ€itamine vĂ”imaldab operatsioonide paraleliseerimist, sarnaselt mitme samal ajal töötava protsessi kĂ€ivitamisele, kuid erinevalt mitme protsessiga mudelist tarbib see vĂ€hem ressursse. Rakenduste tasandil vĂ”ivad operatsioonide jagamiseks interpretaatorite vahel kasutada nĂ€itlejate mudelit ja CSP-d (jĂ€rgnevate protsesside interaktsioon).
  • CPythonis on rakendatud uus tĂŒĂŒpi interpreter, mis kasutab C-funktsioonide vahel tagasikutsumisi, mis realiseerivad erinevaid Python'i baitkoode, selle asemel, et kasutada ĂŒhte suurt funktsiooni switch/case avaldusega. Clang 19 versiooniga kokkupanemise korral demonstreerib uus interpreter 3-5% tulemuslikkuse paranemist pyperformance'i testide lĂ€biviimisel. Uus interpreter on praegu saadaval valikuna x86-64 ja AArch64 arhitektuuride jaoks ning nĂ”uab kokkupanemiseks vĂ€hemalt Clang 19 versiooni (GCC toe lubatakse hiljem).
  • Funktsioonidele, klassidele ja moodulitele on tagatud viivitusega annotatsioonide töötlemine. Annotatsioonid ei töödelda enam kohe, vaid salvestatakse spetsialiseeritud funktsioonide kujul ja arvutatakse vaid vajadusel. Uus kĂ€itumine lihtsustab annotatsioonidega töötamist ja vĂ€hendab töötlemise tĂ€iendavaid kulusid kĂ€itamise ajal. Viivitusega annotatsioonide vaatamiseks on pakutud moodul annotationlib.
  • Standardbibliotek on lisatud paketiga compression, mis pakub funktsioone andmete kokkusurutamiseks ja lahtipakkimiseks erinevate algoritmide abil. Lisaks moodulitele compression.lzma, compression.bz2, compression.gzip ja compression.zlib, mis pakuvad juurdepÀÀsu funktsionaalsusele, mis oli varem saadaval moodulites lzma, bz2, gzip ja zlib, on lisatud uus moodul compression.zstd, mis rakendab ZSTD (Zstandard) algoritmi.
  • VĂ€ljendites «except» ja «except*» on lubatud mitte paigutada sisu sulgudesse, kui vĂ€ljendis on mÀÀratud mitu erandit ja ei kasutata vĂ”tmesĂ”na «as». try: connect_to_server() except TimeoutError, ConnectionRefusedError: print(‘VĂ”rk on lĂ”petanud olemise!’)
  • Interaktiivses PyREPL shellis on rakendatud sĂŒntaksi esiletĂ”stmine. CLI utiliitide vĂ€rviline vĂ€ljund on sisse lĂŒlitatud unittest, argparse, json ja calendar moodulitest.
  • Lisatud liidese tugi vĂ€listatorite ja profilerite ĂŒhendamiseks juba töötavatesse CPython protsessidesse ilma peatamise ja taaskĂ€ivitamise vajaduseta, mis ei mĂ”juta jĂ”udlust.
  • PDB moodulisse on lisatud tugi kaugĂŒhendusele töötavatesse Python-protsessidesse. NĂ€iteks saab protsessiga, mille number on 1234, ĂŒhendada kĂ€suga „python -m pdb -p 1234”.
  • UUID moodulisse on lisatud funktsioonid uuid6(), uuid7() ja uuid8() versioonide 6, 7 ja 8 UUID-identifikaatorite rakendustega.
  • Lisa teatis, kui kasutatakse avaldisi „return”, „break” ja „continue” vĂ€lja for „finally” ploki.
  • Lisatud C API PyInitConfig Python'i initsialiseerimise seadistamiseks ilma C struktuuride sidumiseta, mis vĂ”imaldab teha muudatusi, mis ei riku ABI-d. Pakutakse funktsioone Add, PyConfig_Get() ja PyConfig_Set() seadistamiseks, samuti funktsiooni PyInitConfig_AddModule() laiendatud mooduli lisamiseks.
  • TĂ”hustatud veateated. Lisatud soovitused vĂ”tmesĂ”nade trĂŒkivigade parandamiseks.
  • Integreeritud on tulemused Pythonis krĂŒptograafiliste algoritmide, mida pakuvad moodulid hashlib ja hmac, asendamisest matemaatiliste (formaalse) tĂ”estuse variantsustega, mis on ette valmistatud projekti „HACL*“ poolt. KĂ”ik Pythonis vaikimisi pakutavad rĂ€sifunktsioonid ja HMAC on asendatud variantidega, millel on formaalne vastavuse tĂ”end (formaalne verifitseerimine). Muuhulgas on lisatud HMAC-BLAKE2 teostus, mis kasutab SIMD-juhiseid AVX2 arvutuste kiirendamiseks.
  • Lisatud on uus kĂ€surealiides („python -m asyncio ps PID“ ja „python -m asyncio pstree PID“) kĂ€ivitatud Python-protsesside inspekteerimiseks koos asĂŒnkroonsete ĂŒlesannetega (asyncio).
  • Valmis kogumite hulka macOS ja Windowsi jaoks on lisatud eksperimentaalne JIT-kompilaator. Windowsi installija on asendatud paigalduse halduriga.
  • Kogumite terviklikkuse verifitseerimiseks on PGP-allkirjade asemel kasutusele vĂ”etud krĂŒptograafilise koodi verifitseerimise sĂŒsteem Sigstore.
  • Esitatud on ametlikud binaarsed kogumid Androidi platvormile.

JÀrgmiste tundide jooksul algab Python 3.15 alfa-testimine, mis jÀÀb alfa-vÀljalaskmise staadiumisse seitsmeks kuuks. Selle aja jooksul lisatakse uusi funktsioone ja eemaldatakse vigu (vastavalt uuele arendusgraafikule algab uus haru töö viie kuu jooksul enne eelmise haru vabastamist ja saavutab alfa-testimise etapi jÀrgmise vabastamise ajaks). PÀrast seda kestab kolme kuu vÀltel beetatestimine, mille kÀigus uusi funktsioone ei lubata ja kÔik tÀhelepanu on suunatud vigade parandamisele. Viimased kaks kuud enne vabastamist viib haru lÀbi vabastuskandidaadi etapi, kus toimub lÔplik stabiliseerimine.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster