<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: sumit mishra</title>
    <description>The latest articles on DEV Community by sumit mishra (@ossm).</description>
    <link>https://dev.to/ossm</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3081332%2F371a4a28-b074-40e8-999b-88f8b89e0263.jpg</url>
      <title>DEV Community: sumit mishra</title>
      <link>https://dev.to/ossm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ossm"/>
    <language>en</language>
    <item>
      <title>CPython’s Experimental JIT in Python 3.15</title>
      <dc:creator>sumit mishra</dc:creator>
      <pubDate>Fri, 28 Aug 2026 11:22:37 +0000</pubDate>
      <link>https://dev.to/ossm/cpythons-experimental-jit-in-python-315-4pmd</link>
      <guid>https://dev.to/ossm/cpythons-experimental-jit-in-python-315-4pmd</guid>
      <description>&lt;p&gt;Python’s JIT compiler has been experimental since Python 3.13, but &lt;strong&gt;Python 3.15&lt;/strong&gt; is an important step in its development. The first release candidate, &lt;strong&gt;Python 3.15.0rc1, was released on August 4, 2026&lt;/strong&gt;, with the final release expected in October. The main change is not simply the presence of a JIT, but a substantial improvement in how it observes and optimizes Python code.&lt;/p&gt;

&lt;h3&gt;
  
  
  A New Tracing Frontend
&lt;/h3&gt;

&lt;p&gt;The 3.15 JIT now uses a new tracing frontend that records the execution paths a program actually takes. This gives the compiler better information about which operations are important and which paths should be optimized. Earlier versions had more limited information about the code being executed. The improvement itself is not the main performance gain, but it provides a better foundation for the optimizations that follow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Better Use of CPU Registers
&lt;/h3&gt;

&lt;p&gt;One of the more practical improvements is basic &lt;strong&gt;register allocation&lt;/strong&gt;. Earlier JIT-generated code moved many intermediate values through memory between operations. Python 3.15 can keep some of these values in CPU registers across multiple operations instead. This reduces unnecessary memory traffic and is particularly useful for code with repeated arithmetic and other tight loops.&lt;/p&gt;

&lt;h3&gt;
  
  
  Less Reference-Counting Overhead
&lt;/h3&gt;

&lt;p&gt;Reference counting is an important part of CPython's memory-management system, but it also creates work for the CPU. The new JIT can remove some reference-count operations when it can prove that they are unnecessary. This allows compiled code to spend more time doing the actual work rather than repeatedly maintaining object lifetime information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Faster Numeric Operations
&lt;/h3&gt;

&lt;p&gt;The JIT also introduces in-place optimizations for some &lt;code&gt;int&lt;/code&gt; and &lt;code&gt;float&lt;/code&gt; operations. When the compiler can determine that an object is not being referenced elsewhere, it can avoid creating another object for every operation. This is particularly useful in numeric loops where the same values are updated repeatedly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Early Performance Results
&lt;/h3&gt;

&lt;p&gt;The current &lt;code&gt;pyperformance&lt;/code&gt; results show roughly &lt;strong&gt;8–9% geometric-mean improvement on x86-64 Linux&lt;/strong&gt; and around &lt;strong&gt;12–13% on AArch64 macOS&lt;/strong&gt;, compared with the corresponding non-JIT interpreter configurations. These numbers are useful indicators of progress, but they should not be read as a general claim that every Python program will become 10% faster. The actual effect depends heavily on the workload.&lt;/p&gt;

&lt;h3&gt;
  
  
  The JIT Is Still Experimental
&lt;/h3&gt;

&lt;p&gt;Despite these improvements, the JIT is still &lt;strong&gt;disabled by default&lt;/strong&gt;. It is intended for experimentation and benchmarking rather than being something most production applications should enable without testing. Some of its interfaces are also explicitly marked unstable, which reflects the fact that the implementation is still evolving.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Bigger Question: PEP 836
&lt;/h3&gt;

&lt;p&gt;The technical progress is only half of the story. On &lt;strong&gt;June 8, 2026&lt;/strong&gt;, the Python Steering Council paused new JIT development on CPython's main branch and asked the developers to present a formal plan for the project's future. This resulted in &lt;strong&gt;PEP 836, “JIT Go Brrr: The Path to a Supported JIT Compiler for CPython.”&lt;/strong&gt; The proposal describes a multi-release roadmap with measurable performance targets, including a proposed &lt;strong&gt;20% geometric-mean improvement&lt;/strong&gt; on the &lt;code&gt;pyperformance&lt;/code&gt; suite for JIT plus free-threading by Python 3.17.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where It Stands in August
&lt;/h3&gt;

&lt;p&gt;As of August 2026, PEP 836 is still under discussion rather than being a settled decision. That makes the current state of CPython's JIT unusually interesting: the implementation is considerably more capable than it was in its early releases, while its long-term place in CPython is still being decided.&lt;/p&gt;

&lt;p&gt;For now, Python 3.15 looks less like the moment when “Python gets a JIT” and more like an important experiment in whether a JIT can become a reliable part of &lt;strong&gt;CPython's execution model&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>discuss</category>
      <category>news</category>
    </item>
    <item>
      <title>Python 3.15 Release Highlights</title>
      <dc:creator>sumit mishra</dc:creator>
      <pubDate>Thu, 27 Aug 2026 11:23:29 +0000</pubDate>
      <link>https://dev.to/ossm/python-315-release-highlights-21b</link>
      <guid>https://dev.to/ossm/python-315-release-highlights-21b</guid>
      <description>&lt;p&gt;Python 3.15 has reached Release Candidate 1, and the final release is expected on October 1, 2026.&lt;/p&gt;

&lt;p&gt;I went through the changes and tried to summarize the ones that seem most relevant for everyday Python development without going through all the PEP numbers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Faster startup with lazy imports&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Python 3.15 introduces lazy imports, which means some modules can be loaded only when they are actually needed instead of being loaded immediately.&lt;/p&gt;

&lt;p&gt;This could help applications and CLI tools that spend a noticeable amount of time importing modules before doing any actual work.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UTF-8 becomes the default&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;UTF-8 is becoming the default encoding, which should reduce encoding-related problems, especially when code is running on different operating systems.&lt;/p&gt;

&lt;p&gt;This should make situations where something works on one computer but fails because of a different system encoding less common.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Built-in immutable dictionaries&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Python 3.15 adds a built-in &lt;code&gt;frozendict&lt;/code&gt;-style immutable mapping.&lt;/p&gt;

&lt;p&gt;Similar to how a tuple provides an immutable alternative to a list, this gives Python developers a standard way to work with dictionaries that cannot be modified.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JIT improvements&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The JIT compiler continues to improve in Python 3.15.&lt;/p&gt;

&lt;p&gt;Early benchmarks show performance improvements in some workloads, including roughly 8–9% on Linux and larger improvements in some Apple Silicon tests.&lt;/p&gt;

&lt;p&gt;These numbers will obviously depend on the workload, so I would wait for more benchmarks before making broader conclusions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New profiler: Tachyon&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Python 3.15 also introduces Tachyon, a new sampling profiler designed for very low overhead.&lt;/p&gt;

&lt;p&gt;It can sample running programs at very high frequencies and can also be attached to an already-running process.&lt;/p&gt;

&lt;p&gt;This could be useful for finding performance problems without having to restart an application with a profiler attached from the beginning.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Some terminal improvements&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interactive Python experience is getting a few smaller improvements, including colored error messages and prompts.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;sqlite3&lt;/code&gt; command-line interface also gets SQL keyword completion.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Free-threaded Python is still opt-in&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Python 3.15 does not make the no-GIL/free-threaded build the default.&lt;/p&gt;

&lt;p&gt;It is still something you have to explicitly use.&lt;/p&gt;

&lt;p&gt;However, free-threaded Python is becoming more mature, including improvements to ABI support that should make it easier for C extension developers to support it.&lt;/p&gt;

&lt;p&gt;Overall, Python 3.15 doesn't look like a release that completely changes how Python is written. Most of the changes are focused on performance, tooling, and improving some long-standing parts of the language.&lt;/p&gt;

&lt;p&gt;Since this is already RC1, the major feature set should be mostly locked and the remaining work should mainly be bug fixes and final polishing.&lt;/p&gt;

&lt;p&gt;Has anyone here been testing the Python 3.15 beta or RC?&lt;/p&gt;

&lt;p&gt;I'm especially interested in whether lazy imports have caused compatibility problems with existing projects.&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
