<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/python-3-15-finally-ships-the-features-people-kept-asking-for-x466tena2" -->

---
title: Python 3.15 finally ships the features people kept...
description: Python 3.15 is slated for final release on October 1, 2026, bundling several long-requested features. The headline is Tachyon, a new built-in sampling profiler...
canonical: https://daily.dev/posts/python-3-15-finally-ships-the-features-people-kept-asking-for-x466tena2
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Python 3.15 finally ships the features people kept asking for | daily.dev
og:description: Python 3.15 is slated for final release on October 1, 2026, bundling several long-requested features. The headline is Tachyon, a new built-in sampling profiler...
og:url: https://daily.dev/posts/python-3-15-finally-ships-the-features-people-kept-asking-for-x466tena2
og:image: https://api.daily.dev/og/posts/x466TeNA2.png
og:image:alt: Python 3.15 finally ships the features people kept asking for
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Python 3.15 finally ships the features people kept asking for

**[Trends](https://daily.dev/sources/trends)** · 2 min read · 23 upvotes · 2 comments

## Summary

Python 3.15 is slated for final release on October 1, 2026, bundling several long-requested features. The headline is Tachyon, a new built-in sampling profiler (profiling.sampling) built by Pablo Galindo Salgado and Bloomberg's László Kiss Kollár, offering near-zero overhead compared to tracing profilers like cProfile, which moves to profiling.tracing under PEP 799. Other additions include lazy imports (PEP 810), a built-in frozendict (PEP 814), a standard sentinel(), comprehension unpacking (PEP 798), UTF-8 as the default encoding, extended typed dictionaries, an upgraded experimental JIT, and continued free-threading work including an ABI3T stable ABI target. One workshop builder found Tachyon's out-of-process sampling doesn't currently work well alongside in-process instrumentation libraries like wrapture.

## Content

Python 3.15 was supposed to be boring by now. Instead, release candidate 3 landed unannounced, and the culprit is the feature everyone is most excited about: lazy imports. Last-minute bugs in PEP 810 pushed the final release back a week, to October 9. Maintainers are being nudged to publish 3.15-compatible wheels on PyPI, and no further ABI changes are expected.

## The feature list people are actually discussing

The headline items are lazy imports via a new `lazy` keyword, a `frozendict` builtin (PEP 814), a standard sentinel value, and unpacking inside comprehensions (PEP 798). UTF-8 also becomes the default encoding regardless of system locale, and the experimental JIT is reportedly 7-12% faster. Early free-threading work gets a new ABI3T target for GIL-free C extensions.

The Real Python podcast hosts spend part of their episode on when to start upgrading, which tells you the mood: interested, but not rushing to production on a release that just needed a third RC.

## Tachyon is the sleeper hit

The sampling profiler is getting the most enthusiasm. Built by Pablo Galindo Salgado and Bloomberg's László Kiss Kollár, Tachyon lives in `profiling.sampling` and attaches to a live process from outside. Tracing profilers like cProfile slow code by 2-20x; Tachyon claims near-zero overhead, and went from a prototype at 2 samples per second to over a million. It ships flame graphs, heat maps, differential flame graphs and a dump mode for hung processes. HRT's production story: it caught an accidentally quadratic algorithm eating a full core.

Not everyone gets a clean fit, though. One author built 21 hands-on workshops around Tachyon hoping to integrate it with wrapture, a call-site instrumentation library. Verdict: the out-of-process sampling model doesn't mesh with in-process hooking, at least not in 3.15.

## Next up: `??`

Python Bytes flags PEP 824, a draft from Marc Mueller sponsored by Guido van Rossum. It would add `??` and `??=` None-coalescing operators in 3.16, a slimmed-down take on the decade-old PEP 505. PyCoder's Weekly lists PEP 823 alongside it. Episode #499's title, "So many questions??", is about as much editorializing as the PEP has drawn so far.

## Loose ends

- A macOS 27.0 change makes tkinter apps like IDLE hang when opening dialogs. It's tracked on the CPython bug tracker.
- Python 3.10 has reached end of life, with security patches out for 3.10 through 3.14.
- PyScript is entering maintenance mode.

## Questions this post answers

### What is Tachyon in Python 3.15 and how is it different from cProfile?

Tachyon is a new built-in sampling profiler shipping in Python 3.15 at profiling.sampling, built by CPython core developer Pablo Galindo Salgado and Bloomberg's László Kiss Kollár. Unlike tracing profilers like cProfile, which can slow code 2-20x, Tachyon attaches to a live process from outside with near-zero overhead, scaling from an early prototype of 2 samples per second to over a million. cProfile itself moves to profiling.tracing under PEP 799.

_daily.dev surfaces release-level changes like this for developers deciding when to adopt a new profiler._

### Does Tachyon work with call-site instrumentation libraries like wrapture in Python 3.15?

No, Tachyon's out-of-process sampling approach does not currently mesh with in-process hooking libraries like wrapture in Python 3.15, based on hands-on testing while building JupyterLab workshops. The incompatibility was specifically noted as a limitation of this release, leaving open whether future versions resolve it.

_Developers combining profiling tools can track edge cases like this one on daily.dev before upgrading._

### When is Python 3.15 scheduled to be released?

Python 3.15's final release is scheduled for October 1, 2026, with release candidates already out and the feature set frozen. A surprise rc3 pushed the schedule back slightly before finalization.

_Teams planning upgrade timelines can follow release milestones like this one on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@ahmetozel** · 0 upvotes

> Lazy imports change what a successful startup proves. A service can reach its health endpoint without having loaded an optional dependency that the first real request needs. The startup-time improvement is useful, but an import failure can move from deployment into a user-facing path.
>
> I would make readiness exercise the dependencies required for the supported request paths, while leaving genuinely optional features lazy. In the upgrade tests, deliberately remove one optional package and check where the error appears. Measure both process startup and first-request latency, so a faster boot is...

**@pdfopsdev** · 0 upvotes

> tachyon being out-of-process is really the whole point for prod use, py-spy already proved that model works at near zero overhead. curious if this ends up replacing py-spy entirely or just becomes the stdlib-blessed version of the same trick.

## Similar posts on daily.dev

- [Python 3.15.0 alpha 7](https://daily.dev/posts/python-3-15-0-alpha-7-mdms5ltls) · Python Insider · 5 upvotes · 0 comments
- [Go hands-on with Python 3.15](https://daily.dev/posts/go-hands-on-with-python-3-15-ntvozjefq) · InfoWorld · 0 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python), [#cpython](https://daily.dev/tags/cpython)

[View this post on daily.dev](https://daily.dev/posts/python-3-15-finally-ships-the-features-people-kept-asking-for-x466tena2)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Python 3.15 finally ships the features people kept asking for","url":"https://daily.dev/posts/python-3-15-finally-ships-the-features-people-kept-asking-for-x466tena2","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/python-3-15-finally-ships-the-features-people-kept-asking-for-x466tena2"},"datePublished":"2026-10-02T15:08:17.597Z","dateModified":"2026-10-07T01:53:09.077Z","description":"Python 3.15 is slated for final release on October 1, 2026, bundling several long-requested features. The headline is Tachyon, a new built-in sampling profiler...","image":"https://i.ytimg.com/vi/bgeqL4Btou0/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/bgeqL4Btou0/sddefault.jpg","isAccessibleForFree":true,"articleSection":"Trends","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Trends","logo":"https://media.daily.dev/image/upload/s--ZfSp3asX--/f_auto,q_auto/v1780996004/logos/trends?_a=BAMAMiWQ0","url":"https://daily.dev/sources/trends"},"commentCount":2,"discussionUrl":"https://daily.dev/posts/python-3-15-finally-ships-the-features-people-kept-asking-for-x466tena2","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":23},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":2}],"keywords":"python,cpython","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Trends","item":"https://daily.dev/sources/trends"},{"@type":"ListItem","position":3,"name":"Python 3.15 finally ships the features people kept asking for"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/python-3-15-finally-ships-the-features-people-kept-asking-for-x466tena2","comment":[{"@type":"Comment","text":"Lazy imports change what a successful startup proves. A service can reach its health endpoint without having loaded an optional dependency that the first real request needs. The startup-time improvement is useful, but an import failure can move from deployment into a user-facing path.\nI would make readiness exercise the dependencies required for the supported request paths, while leaving genuinely optional features lazy. In the upgrade tests, deliberately remove one optional package and check where the error appears. Measure both process startup and first-request latency, so a faster boot is not accidentally reported as a faster complete request.","datePublished":"2026-10-07T14:48:10.086Z","url":"https://daily.dev/posts/x466TeNA2#c-vlWAx7gkY","author":{"@type":"Person","name":"Ahmet Özel","url":"https://daily.dev/ahmetozel","image":"https://avatars.githubusercontent.com/u/70992231?v=4"}},{"@type":"Comment","text":"tachyon being out-of-process is really the whole point for prod use, py-spy already proved that model works at near zero overhead. curious if this ends up replacing py-spy entirely or just becomes the stdlib-blessed version of the same trick.","datePublished":"2026-10-04T18:01:10.266Z","url":"https://daily.dev/posts/x466TeNA2#c-ftMgavLWG","author":{"@type":"Person","name":"PDFops","url":"https://daily.dev/pdfopsdev","image":"https://media.daily.dev/image/upload/s---8isRBKc--/f_auto/v1782922291/avatars/avatar_orjMeK8QKaaVZwGq7ScPz?_a=BAMAMicg0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/python-3-15-finally-ships-the-features-people-kept-asking-for-x466tena2#faq","mainEntity":[{"@type":"Question","name":"What is Tachyon in Python 3.15 and how is it different from cProfile?","acceptedAnswer":{"@type":"Answer","text":"Tachyon is a new built-in sampling profiler shipping in Python 3.15 at profiling.sampling, built by CPython core developer Pablo Galindo Salgado and Bloomberg's László Kiss Kollár. Unlike tracing profilers like cProfile, which can slow code 2-20x, Tachyon attaches to a live process from outside with near-zero overhead, scaling from an early prototype of 2 samples per second to over a million. cProfile itself moves to profiling.tracing under PEP 799. daily.dev surfaces release-level changes like this for developers deciding when to adopt a new profiler."}},{"@type":"Question","name":"Does Tachyon work with call-site instrumentation libraries like wrapture in Python 3.15?","acceptedAnswer":{"@type":"Answer","text":"No, Tachyon's out-of-process sampling approach does not currently mesh with in-process hooking libraries like wrapture in Python 3.15, based on hands-on testing while building JupyterLab workshops. The incompatibility was specifically noted as a limitation of this release, leaving open whether future versions resolve it. Developers combining profiling tools can track edge cases like this one on daily.dev before upgrading."}},{"@type":"Question","name":"When is Python 3.15 scheduled to be released?","acceptedAnswer":{"@type":"Answer","text":"Python 3.15's final release is scheduled for October 1, 2026, with release candidates already out and the feature set frozen. A surprise rc3 pushed the schedule back slightly before finalization. Teams planning upgrade timelines can follow release milestones like this one on daily.dev."}}]}
```

