12 comments

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

As long as 3.11 can be "embraced" without breaking on 3.10. As a user, I might still have 3.10 installed and be happy with it, or be stuck on a system that tops out at 3.10. Unpopular opinion on HN, but I really dislike the "I can break users on X because Y is now out" policies :(.
kbumsik
> PEP 810: Explicit lazy imports for faster startup times

Yes lazy import! Finally!

simonw
OK this is fun:

  uvx --python 3.15 whatsnewt
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!

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.
A large number of the links in the page appear broken for me :/
Some should now be fixed as the documentation pages get updated to point to 3.15.
sfink
Yeah I had to find a working one low down in the page and edit the PEP number: https://peps.python.org/pep-0790/
I clicked through some random ones which all worked, can you describe the ones that didn't work for you and how they failed?
lsofzz
<3