Python 3.15
ngoldbaum
291 points
98 comments
October 09, 2026
Related Discussions
Found 5 related stories in 109.7ms across 8,999 title embeddings via pgvector HNSW
- How Fast is Python 3.15? Qem · 55 pts · October 06, 2026 · 64% similar
- Self-contained highly-portable Python distributions jcbhmr · 129 pts · July 27, 2026 · 42% similar
- Thinking in Python pjacotg · 124 pts · August 22, 2026 · 42% similar
- PyPy v8.0.0 Release lumpa · 20 pts · September 19, 2026 · 41% similar
- Python's pre-declared constants are kinda weird rbanffy · 167 pts · August 25, 2026 · 41% similar
Discussion Highlights (17 comments)
alienbaby
A large number of the links in the page appear broken for me :/
zahlman
The XZ-compressed source tarball is about half again as large as the one for 3.14. What happened? Edit: Digging in a bit, a lot of things are slightly bigger overall as you'd expect; but notably the documentation folder has gained two animated GIFs totaling over 10MB (which presumably don't compress too much further even with XZ) demonstrating "tachyon" (which presumably refers to the new sampling profiler, https://docs.python.org/3.15/library/profiling.sampling.html ). These seem to be screen captures from terminal sessions, which work well enough to illustrate what a TUI looks like, but are probably not all that informative about how to use it. I would have much preferred SVG diagrams based around static screenshots.
droidjj
> The experimental JIT compiler has been significantly upgraded, with 7-8% geometric mean performance improvement on x86-64 Linux over the standard interpreter, and 11-12% speedup on AArch64 macOS over the tail-calling interpreter. Nice to see improvements here!
simonw
As a maintainer of a whole bunch of open source Python libraries, my favorite thing about a new Python release is that it signifies the end of support for an older one. In this case that's Python 3.10... which means that my libraries that aim to support every current Python version can finally start embracing features from Python 3.11! Here's the "what's new in Python 3.11" document: https://docs.python.org/3/whatsnew/3.11.html
simonw
OK this is fun: uvx --python 3.15 whatsnewt
OutOfHere
Whether you use 3.15 or not, if your project already passes a modern type checker, one thing that you can do easily using AI is to significantly tighten (narrow) the type annotations of your functions. Run this two or three times until the annotations are sufficiently but not excessively narrowed. This prevents a whole lot of bugs, and increases clarity of the code for AI. This matters more for newer versions of Python which actually offer the constructs needed for it. Python 3.15 extends this with sentinel and enhancements to TypedDict.
kbumsik
> PEP 810: Explicit lazy imports for faster startup times Yes lazy import! Finally!
fishgoesblub
Been waiting for lazy imports for a long time now, glad to see them finally.
ngoldbaum
My headline feature is the new “abi3t” stable ABI for the free-threaded build. While Petr Viktorin did most of the CPython implementation, I’ve been trying to make sure ecosystem support is ready. It’s been a rewarding but quite challenging project to make sure everything is working. There were some late nights leading up to the beta1 release when we found a Windows-specific issue that needed a fix. I’m particularly proud that the cryptography project is already shipping a single abi3.abi3t wheel for each platform on Python 3.15 or newer. The GIL-enabled build and free-threaded build can both use the same wheel now, because PyObject is opaque. If you want to learn more about this, I gave a talk at EuroPython this year on Python’s ABI and the road to building and releasing abi3t today. See https://youtu.be/An8lO29SxXE .
zshn
Quite a few nice features, need to play around a bit with them more though. Lazy imports seems nice mainly for my work at the moment.
ChrisArchitect
Related: How Fast is Python 3.15? https://news.ycombinator.com/item?id=49984652
hncbw02z5a
Shipping one abi3 wheel instead of per version builds cut our CI matrix from like 20 jobs to 4, that alone was worth it.
6gvONxR4sf7o
> PEP 798: Unpacking in comprehensions > PEP 814: Add frozendict built-in type About damned time. These are little quality of life changes that I've wanted roughly forever. Glad to see them arriving.
rirze
Hmm I see https://peps.python.org/pep-0829/ is now merged in. I understand why it's necessary, but I was doing some cool things with codecs installing "macros" with `.pth` imports.
PaulHoule
PEP 686 for the win! https://peps.python.org/pep-0686/
wg0
This might irk many but going forward, I see only following languages surviving: 1. Typescript + Javascript 2. Rust. 3. Python - because of data science and interactive apps. Basically, everything that can be rewritten in Rust with or without AI will be rewritten in Rust with or without AI in coming decade. Famous cases: 1. Some backends at 37 signals from Ruby to Rust. 2. Bun from Zig to Rust. 3. Git in transition. 4. Mold linker from C to Rust. 5. Biome 6. TailwindCSS CLI And much much more. Even Python interpreter is in process of using Rust as the main language if I am not wrong. [0]. https://github.com/kevincouton/awesome-rust-migrations#1
febed
The Tachyon sampling profile looks interesting. It can profile a running python Process which would be useful in production setups.