Megjelent a Python 3.15: gyorsabb JIT, lusta importok és alapértelmezett UTF-8

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

A Python fejlesztőcsapata bejelentette a Python 3.15-öt, a népszerű nyílt forráskódú programozási nyelv legújabb stabil verzióját.

Egy évvel a Python 3.14 után érkezik az egyik legfontosabb fejlesztés, a Python kísérleti JIT fordítójának továbbfejlesztése. x86-64 Linux rendszereken az új fordító 7–8%-os geometriai átlagos teljesítményjavulást hoz a hagyományos interpreterhez képest. AArch64 macOS-en a javulás 11–12% az úgynevezett tail-calling interpreterhez viszonyítva.

Jelentős újdonság az explicit lusta import is, amelyet a PEP 810 vezet be. Alapesetben a Python az importált modulokat azonnal betölti, még akkor is, ha a program futása közben végül nincs is rájuk szükség. Ez különösen nagy, sok függőséget használó alkalmazásoknál lassíthatja az indulást.

A Python 3.15 erre kínál megoldást az új lazy kulcsszóval, amellyel a fejlesztők elhalaszthatják a modulok betöltését az első tényleges használatig. Például a lazy import json úgy jelenti be a modult, hogy azt még nem tölti be azonnal. Az import csak akkor fejeződik be, amikor az alkalmazás először hozzáfér a modulhoz.

A kiadás emellett az UTF-8-at teszi meg alapértelmezett szövegkódolásnak, a PEP 686 előírásai szerint. Ez egységesebb viselkedést eredményez a különböző operációs rendszereken, és csökkenti a kódolási problémákat szövegfájlok kezelésekor, főleg ha azokat Linux, Windows és macOS között mozgatják.

Nyelvi szinten a Python 3.15 két új beépített típust vezet be. Az első a frozendict, egy olyan változtathatatlan szótár, amelynek tartalmát létrehozás után már nem lehet módosítani. Megőrzi a beszúrási sorrendet, és akkor hash-elhető objektumként is használható, ha a kulcsai és értékei hash-elhetők.

A második, a sentinel, egységes mechanizmust ad egyedi jelölőértékek létrehozására. Ilyen értékeket gyakran használnak API-kban annak megkülönböztetésére, hogy egy paramétert egyáltalán nem adtak meg, vagy kifejezetten valamilyen értékre, például None-ra állították.

A nyelvi újdonságokon túl a Python 3.15 egy dedikált profilozó csomagot is bevezet, amely közös felület alá szervezi a különböző profilozó eszközöket. Az újdonságok között található a Tachyon, egy nagy frekvenciájú, statisztikai mintavételezést használó profiler, amely minimális többletterheléssel elemezi a futó Python folyamatokat.

A Tachyon képes csatlakozni egy már futó Python folyamathoz újraindítás vagy kódbeli módosítás nélkül. Több profilozási módot támogat, például a CPU-időt, a falióra szerinti időt és a Global Interpreter Lock tartásával töltött időt. A fejlesztők lánggrafikonokat és más vizualizációkat is készíthetnek, hogy feltárják a teljesítményszűk keresztmetszeteket.

A Linuxot használó felhasználók és rendszergazdák egy másik fontos változásnak is örülhetnek: a CPython mostantól alapértelmezés szerint engedélyezi a frame pointereket a támogatott platformokon. Ez megbízhatóbbá teszi a natív stack trace-eket, és javítja a kompatibilitást a rendszer-szintű profilozó és hibakereső eszközökkel, köztük az eBPF-alapú megoldásokkal.

A Python 3.15 tovább bővíti a free-threaded build-ek támogatását, amelyek lehetővé teszik, hogy a Python szálak a hagyományos Global Interpreter Lock nélkül fussanak. A kiadás stabil ABI támogatást vezet be a free-threaded Python-hez, és ezzel összefüggő C API fejlesztéseket is hoz, így a kiterjesztések fejlesztői könnyebben tudják támogatni ezt a futtatási modellt.

A további változások közé tartoznak a részletesebb hibaüzenetek, a színesebb parancssori kimenet, az új típusannotációs lehetőségek és a C API különféle fejlesztései. A hivatalos 64 bites Windows binárisok mostantól a tail-calling interpretert használják, a macOS telepítők pedig alapértelmezés szerint tartalmazzák a free-threading támogatást.

Akik interaktívan szeretnék felfedezni az új kiadást, azoknak Barry Warsaw, a Python egyik fejlesztője bemutatta a whatsnewt nevű, terminálban futó kalandjátékot is, amely 18, a Python 3.15 új képességeire épülő rejtvényt tartalmaz. A legegyszerűbben úgy lehet kipróbálni, ha kiadjuk a következő parancsot: uvx --Python 3.15 whatsnewt.

További részletek az hivatalos kiadásbejelentésben és a részletes What’s New in Python 3.15 dokumentációban olvashatók.