Python — мова програмування високого рівня.
Після року розвитку, Анонсовано вихід стабільної версії а також початок альфа-фази тестування мови програмування Python 3.12 і Python 3.13 (відповідно). Зазначається, що ця нова гілка Python 3.12 підтримуватиметься протягом півтора років, після чого ще протягом трьох з половиною років будуть генеруватися виправлення для усунення вразливостей.
Представлена нова версія Python 3.12 має покращення в гнучкість аналізу f-рядка. З цим покращенням зараз багато обмежень можна залишити осторонь, оскільки, наприклад, тепер ви можете містити будь-які дійсні вирази в Python, включаючи багаторядкові вирази, коментарі, зворотні косі риски та керуючі послідовності Unicode. Крім того, внутрішні рядки тепер дозволяють повторно використовувати ті самі лапки, тобто подвійні лапки тепер можна повторно використовувати всередині без необхідності переходу в одинарні лапки.
Наприклад :
f"""{f'''{f'{f"{1+1}"}'}'''}"""
Тепер можливо довільне вкладення:
f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
Ще однією із змін, яка виділяється, є підтримка ізольованих субінтерпретаторів і окремих глобальних блокувань, які призначені для підвищення ефективності використання ресурсів у багатоядерних системах, оскільки для різних інтерпретаторів у процесі CPython дозволяє одночасно запускати декілька інтерпретаторів у процесі. Наразі ця функція доступна лише через C-API (підтримка Python API з’явиться в наступній великій гілці).
Крім цього, також наголошується, щоЗбільшено інформативність повідомлень про помилки і діапазон винятків було розширено, пропонуючи рекомендації щодо усунення друкарських помилок. Наприклад, тепер відображаються пропозиції щодо імпорту забутих модулів стандартної бібліотеки та пропозиції щодо префікса «сам».
Додано можливість використання буферного протоколу в коді Python. Класи, які надають метод "__buffer__()", тепер можна використовувати як типи, які працюють безпосередньо з двійковими даними в пам'яті.
Модуль sys.monitoring пропонується для налагодження та профілювання, дозволяючи вам відстежувати події в CPython, такі як виклики, повернення функцій, виконання довільних рядків коду, винятки та переходи з мінімальними накладними витратами.
Інтерпретатор реалізує підтримку підсистеми продуктивності ядра Linux, що дозволяє визначати імена функцій Python під час профілювання за допомогою утиліти продуктивності (раніше в трасуваннях визначалися лише імена функцій C).
Що стосується підвищення продуктивності, згадується, що продовження оптимізації, з якої Було отримано загальний приріст продуктивності, оцінений у 5%., також було додано експериментальна підтримка двійкового оптимізатора BOLT до процесу збірки, збільшуючи продуктивність на 1-5%, тоді як продуктивність пакета asyncio значно покращилася (деякі тести показують прискорення на 75%).
Реалізовано вбудоване розширення розуміння списків, що прискорює роботу з розумінням списків до двох разів (для коду, який активно використовує розуміння списків, тестування показало загальне підвищення продуктивності на 11%).
Для підвищення безпеки, вбудовані реалізації Алгоритми SHA1, SHA3, SHA2-384, SHA2-512 і MD5 в хешлібі замінено з офіційно перевіреними опціями з проекту HACL* (вбудовані реалізації використовуються, лише якщо OpenSSL недоступний).
З інші зміни що виділяються:
- Модуль має розширену підтримку Windows.
- Python реалізує захист від переповнення стека.
Прискорено створення класу asyncio.Task. - Розмір об’єктів Unicode зменшено на 8–16 байт.
- Операції з регулярними виразами re.sub(), re.subn() і re.Pattern були прискорені.
- Виконання перевірок isinstance() для деяких протоколів було прискорено від 2 до 20 разів.
- Значно (у деяких тестах до 64%) функції tokenize.tokenize() і tokenize.generate_tokens() були прискорені.
- Прискорено завантаження атрибутів і виклик методу super().
- Для загальних класів і функцій запропоновано новий, більш компактний синтаксис анотації типу.
- Модуль веб-браузера більше не підтримує старіші браузери, включаючи Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird і Firefox до версії 36.
- Готуючись до майбутніх оптимізацій, внутрішнє представлення цілих чисел було змінено.
І останнє, але не менш важливе, як уже згадувалося, почалося альфа-тестування Python 3.13, в якому з’явився режим компіляції CPython без глобального блокування інтерпретатора (GIL, глобальне блокування інтерпретатора).
Гілка Python 3.13 буде в альфа-версії протягом семи місяців, під час якого будуть додані нові функції та виправлені помилки відповідно до нового графіка розробки, робота над новою гілкою починається за п’ять місяців до випуску попередньої гілки та до того часу, коли наступна версія досягне стадії тестування альфа.
Після цього бета-версії будуть тестуватися протягом трьох місяців, протягом яких буде заборонено додавати нові функції і вся увага буде приділятися виправленню помилок. Протягом останніх двох місяців перед релізом гілка перебуватиме на стадії реліз-кандидата, де відбудеться остаточна стабілізація.
Нарешті так вам цікаво дізнатися більше про це, ви можете перевірити деталі в наступне посилання.