Python programmeerimiskeele 3.13 vÀljaanne

PĂ€rast aasta pikkust arendust on vĂ€lja antud mĂ€rkimisvÀÀrne versioon programmeerimiskeelest Python 3.13. Uut oksa toetatakse ĂŒhe ja poole aasta jooksul, mille jooksul antakse sellele veel kolm ja pool aastat turvapaikade vĂ€ljatöötamist.

Python 3.13-sse lisatud uuendused:

  • Lisatud on eksperimendalne JIT-kompilaatori teostus, mis vĂ”imaldab saavutada olulist jĂ”udluse paranemist. JIT-i aktiveerimiseks CPythonis on lisatud „--enable-experimental-jit” kompileerimisvalik, mille kasutamine nĂ”uab LLVM-i kui tĂ€iendavat sĂ”ltuvust. Masinkoodi kompileerimise protsess JIT-is toimub „Copy-and-Patch” arhitektuuri alusel, kus LLVM-i abil genereeritakse ELF-formaadis objektifail, mis sisaldab teavet baitkoodijuhiste ja vajalike andmete asendamise kohta. JIT asendab tĂ”lgitud programmijuhised nende masinkoodi esitustega, samal ajal kui see sisestab vajalikud arvutamisandmed (JIT kopeerib valmis malli juba kompileeritud funktsioonidest ja sisestab nendesse vajalikud vÀÀrtused, nagu argumendid ja konstantid).
  • Lisatud on eksperimendalne CPythoni kompileerimisreĆŸiim, mis ei kasuta globaali tĂ”kestamiseks tĂ”ukejĂ”ude (GIL, Global Interpreter Lock). Seda saab aktiveerida valiku „--without-gil” abil, mis vĂ”imaldab lahendada mitme sĂŒdamiku sĂŒsteemide samaaegsete toimingute probleemid, mida pĂ”hjustab globaalne tĂ”ke, mis takistab mitme lĂ”ime jagatud objektide paralleelset kasutamist. GIL-i vĂ€lja lĂŒlitamine toob kaasa tĂ€iendavad kulud, mis on pĂ”hjustatud muudatustest prĂŒgikoristussĂŒsteemis, mĂ€lu halduses ja lukustamisalgoritmides. NĂ€iteks, lĂ”ime isoleerimisel kasutatava viidatud arvu tĂ”ttu tĂ€heldatakse ĂŒhe lĂ”ime puhul jĂ”udluse langust ligikaudu 10%. Samas vĂ”ivad sellised kulud kompenseerida toimingute paralleelisus.
  • Pakutud on uus tĂ€iustatud interaktiivne tĂ”lgendaja, mis pĂ”hineb projekti PyPy saavutustel ja toetab selliseid funktsioone nagu mitmerealine redigeerimine, ajaloo salvestamine ja vaatamine, pĂ€ringute ja jĂ€lgede vĂ€rviline kuvamine, REPL-tĂŒĂŒpi kĂ€skude (help, exit, quit jne) kasutamine ilma funktsioonide kaasamiseta, interaktiivne abi ja suurte koodiblokkide sisestamise reĆŸiim.
  • Sisseehitatud funktsiooni locals() semantikat, mis tagastab kĂ”ik kohalikud muutujad ja nende vÀÀrtused praeguses ulatuses, on muudetud optimeeritud ulatuses, nagu funktsioonid, generaatorid ja kooperatiivsed programmid, mille puhul tagastatakse nĂŒĂŒd iseseisvad snĂ€ppfotod praegustest kohalikest muutujatest ja mitte-local muutujatest, mis kajastuvad sulgudes.
  • Vaikimisi on kaasas muudetud versioon Microsofti avatud allikaga mĂ€lu jaotuse raamatukogust mimalloc, mis demonstreerib vĂ€ga kĂ”rge jĂ”udlust. Raamatukogu rakendatakse GIL-i vabalt kompileerimisel.
  • TĂ”lkija eemaldab dokumenteerimisrea (docstring) juhtivad tĂŒhikud, mis vĂ”imaldab vĂ€hendada kasutatavat mĂ€lu ja vĂ€hendada baitkoodide vahemĂ€lu suurust (faili .pyc).
  • Moodulis dbm on rakendatud dbm.sqlite3 tagapool, mis kasutab SQLite-d ja kasutatakse vaikimisi uute failide loomisel.
  • Toetatakse vaikimisi vÀÀrtuste mÀÀramise vĂ”imalust tĂŒĂŒpide parameetrites (typing.TypeVar, typing.ParamSpec ja typing.TypeVarTuple). NĂ€iteks: ‘T = TypeVar(«T», default=int)’.
  • Lisatud on uus annotatsioon typing.TypeIs tĂŒĂŒpide tĂ€psustamiseks, mis on intuitiivsem kui typing.TypeGuard.
  • Lisatud on vĂ”imalus kasutada annotatsiooni typing.ReadOnly TypeDicts elementide mĂ€rkimiseks, mis on ainult lugemiseks saadaval.
  • Lisatud on uus annotatsioon warnings.deprecated(), mis mĂ€rgib tĂŒĂŒpsĂŒsteemis vananenud elemente.
  • Standardraamatukogust on eemaldatud moodulid aifc, audioop, chunk, cgi, cgitb, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu, xdrlib ja lib2to3, mis on varem kuulutatud vananenuks.
  • Moodulisse copy on lisatud funktsioon copy.replace().
  • Moodulisse os on lisatud funktsioonid taimeriga töötamiseks descriptorite kaudu timerfd.
  • Moodulisse random on rakendatud kĂ€surea liides.
  • Toetuse lĂ”petamine versioonidele macOS alates 10.9 kuni 10.12.
  • Toetatud on mobiilplatvormid iOS ja Android, mis kuuluvad kolmandasse tasemesse (Tier 3), kus tagatakse usaldusvÀÀrne platvormi ehitamine ja hooldus vĂ€hemalt ĂŒhe pĂ”hiarendaja poolt, kuid platvormiga seotud tĂ”rked ei blokeeri vĂ€ljaandmist ega kuulu SLA toetuse alla.
  • Wasm32-wasi (WebAssembly System Interface) platvormi tugi on viidud teisele tasemele, kus tĂ”rked blokeerivad vĂ€ljalaske, ja neid pĂ”hjustavad muudatused parandatakse vĂ”i tĂŒhistatakse 24 tunni jooksul. Wasm32-emscripten platvormi ametlik tugi on lĂ”petatud.

JÀrgmiste tundide jooksul algab Python 3.14 haru alfa-testimine, mis jÀÀb alfa-vÀljalaskmise staadiumisse seitsme kuu jooksul, mille jooksul lisatakse uusi funktsioone ja parandatakse vigu (uus arendusgraafik nÔuab, et uue haru eest hakataks töötama viis kuud enne eelmise haru vÀljalaskmist ning see saavutab alfa-testimise staatuse vÀljalaske hetkel). SeejÀrel kestab kolme kuu jooksul beetaversioonide testimine, mille jooksul on uute funktsioonide lisamine keelatud ja kogu tÀhelepanu suunatakse vigade parandamisele. Viimased kaks kuud enne vÀljalaskmist veedab haru kandidaadi staatuse staadiumis, kus teostatakse 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