<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://nuitka.net/</id>
  <title>Nuitka Blog - Posted in 2026</title>
  <updated>2026-06-17T17:31:32.165352+00:00</updated>
  <link href="https://nuitka.net/"/>
  <link href="https://nuitka.net/blog/2026/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.io/" version="0.11.6">ABlog</generator>
  <entry>
    <id>https://nuitka.net/posts/nuitka-release-41.html</id>
    <title>Nuitka Release 4.1</title>
    <updated>2026-06-16T00:00:00+02:00</updated>
    <author>
      <name>Kay Hayen</name>
    </author>
    <content type="html">&lt;section id="nuitka-release-4-1"&gt;

&lt;p&gt;This is to inform you about the new stable release of &lt;a class="reference external" href="https://nuitka.net"&gt;Nuitka&lt;/a&gt;. It is the extremely compatible Python compiler,
&lt;a class="reference external" href="/doc/download.html"&gt;“download now”&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This release adds many new features and corrections with a focus on
async code compatibility, missing generics features, and Python 3.14
compatibility and Python compilation scalability yet again.&lt;/p&gt;
&lt;section id="bug-fixes"&gt;
&lt;h2&gt;Bug Fixes&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Fix, decorators were breaking when disabling
deferred annotations. (Fixed in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, nested loops could have wrong traces lead to mis-optimization.
(Fixed in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Fix, run-time check of package configuration was
incorrect. (Fixed in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compatibility:&lt;/strong&gt; Fix, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;__builtins__&lt;/span&gt;&lt;/code&gt; lacked necessary
compatibility in compiled functions. (Fixed in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Distutils:&lt;/strong&gt; Fix, incorrect UTF-8 decoding was used for TOML input
file parsing. (Fixed in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, multiple hard value assignments could cause compile time
crashes. (Fixed in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, string concatenation was not properly annotating exception
exits. (Fixed in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Fix, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--verbose-output&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--show-modules-output&lt;/span&gt;&lt;/code&gt;
did not work with forward slashes. (Fixed in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Fix, there were various compatibility issues
including dictionary watchers and inline values. (Fixed in 4.0.2
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Fix, stack pointer initialization to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;localsplus&lt;/span&gt;&lt;/code&gt;
was incorrect to avoid garbage collection issues. (Fixed in 4.0.2
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.12+:&lt;/strong&gt; Fix, generic type variable scoping in classes was
incorrect. (Fixed in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.12+:&lt;/strong&gt; Fix, there were various issues with function
generics. (Fixed in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.8+:&lt;/strong&gt; Fix, names in named expressions were not mangled.
(Fixed in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Fix, module checksums were not robust against quoting
style of module-name entry in YAML configurations. (Fixed in 4.0.2
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Fix, doing imports in queried expressions caused
corruption. (Fixed in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Fix, support for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;uv_build&lt;/span&gt;&lt;/code&gt; in the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--project&lt;/span&gt;&lt;/code&gt; option was
broken. (Fixed in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compatibility:&lt;/strong&gt; Fix, names assigned in assignment expressions were
not mangled. (Fixed in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.12+:&lt;/strong&gt; Fix, there were still various issues with function
generics. (Fixed in 4.0.3 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Clang:&lt;/strong&gt; Fix, debug mode was disabled for clang generally, but only
ClangCL and macOS Clang didn’t want it. (Fixed in 4.0.3 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zig:&lt;/strong&gt; Fix, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--windows-console-mode=attach|disable&lt;/span&gt;&lt;/code&gt; was not
working when using Zig. (Fixed in 4.0.3 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Fix, yet another way self dependencies can look like,
needed to have support added. (Fixed in 4.0.3 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.12+:&lt;/strong&gt; Fix, generic types in classes had bugs with
multiple type variables. (Fixed in 4.0.3 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Fix, repeated builds were not producing binary identical
results. (Fixed in 4.0.3 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Fix, compiling with newer Python versions did not fall
back to Zig when the developer prompt MSVC was unusable, and error
reporting could crash. (Fixed in 4.0.4 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zig:&lt;/strong&gt; Fix, the workaround for Windows console mode &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;attach&lt;/span&gt;&lt;/code&gt; or
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;disable&lt;/span&gt;&lt;/code&gt; was incorrectly applied on non-Windows platforms. (Fixed
in 4.0.4 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Fix, linking with Python Build Standalone failed
because &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;libHacl_Hash_SHA2&lt;/span&gt;&lt;/code&gt; was not filtered out unconditionally.
(Fixed in 4.0.4 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.6+:&lt;/strong&gt; Fix, exceptions like &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;CancelledError&lt;/span&gt;&lt;/code&gt; thrown into
an async generator awaiting an inner awaitable could be swallowed,
causing crashes. (Fixed in 4.0.4 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, not all ordered set modules accepted generators for update.
(Fixed in 4.0.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Disabled warning about rebuilding the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pytokens&lt;/span&gt;&lt;/code&gt;
extension module. (Fixed in 4.0.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Filtered &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;libHacl_Hash_SHA2&lt;/span&gt;&lt;/code&gt; from link libs
unconditionally. (Fixed in 4.0.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Disabled unusable unicode consistency checks for
Python versions 3.4 to 3.6. (Fixed in 4.0.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python3.12+&lt;/strong&gt; Avoided cloning call nodes on class level which
caused issues with generic functions in combination with decorators.
(Added in 4.0.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.12+:&lt;/strong&gt; Added support for generic type variables in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;async&lt;/span&gt;
&lt;span class="pre"&gt;def&lt;/span&gt;&lt;/code&gt; functions. (Added in 4.0.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Fix, flushing outputs for prompts was not working in all
cases when progress bars were enabled. (Fixed in 4.0.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Fix, unused variable warnings were missing at C compile time
when using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;zig&lt;/span&gt;&lt;/code&gt; as a C compiler. (Fixed in 4.0.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Fix, forced stdout and stderr paths as a feature was
broken. (Fixed in 4.0.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, replacing a branch did not accurately track shared active
variables causing optimization crashes. (Fixed in 4.0.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Fix, failed to remove extended attributes because files
need to be made writable first. (Fixed in 4.0.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, dict &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pop&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;setdefault&lt;/span&gt;&lt;/code&gt; using with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;:=&lt;/span&gt;&lt;/code&gt; rewrites
lacked exception-exit annotations for un-hashable keys. (Fixed in
4.0.8 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.13:&lt;/strong&gt; Fix, the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;__parameters__&lt;/span&gt;&lt;/code&gt; attribute of generic
classes was not working. (Fixed in 4.0.8 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.11+:&lt;/strong&gt; Fix, starred arguments were not working as type
variables. (Fixed in 4.0.8 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python2:&lt;/strong&gt; Fix, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FileNotFoundError&lt;/span&gt;&lt;/code&gt; compatibility fallback
handling was not working properly. (Fixed in 4.0.8 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compatibility:&lt;/strong&gt; Fix, loop ownership check in value traces was
missing, causing issues with nested loops.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Improved &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--windows-console-mode=attach&lt;/span&gt;&lt;/code&gt; to properly
handle console handles, enabling cases like &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;os.system&lt;/span&gt;&lt;/code&gt; to work
nicely.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python2:&lt;/strong&gt; Fix, there was a compatibility issue where providing
default values to the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;mkdtemp&lt;/span&gt;&lt;/code&gt; function was failing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Fix, there were spurious issues with C23 embedding in
32-bit MinGW64 by switching to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;coff_obj&lt;/span&gt;&lt;/code&gt; resource mode for it as
well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Fix, the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;post-import-code&lt;/span&gt;&lt;/code&gt; execution could fail
because the triggering sub-package was not yet available in
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sys.modules&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Fix, listing package DLLs with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--list-package-dlls&lt;/span&gt;&lt;/code&gt; was
broken due to recent plugin lifecycle changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Fix, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--list-package-exe&lt;/span&gt;&lt;/code&gt; was not working properly on
non-Windows platforms failing to detect executable files correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Handled paths starting with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;{PROGRAM_DIR}&lt;/span&gt;&lt;/code&gt; the same as a
relative path when parsing the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--onefile-tempdir-spec&lt;/span&gt;&lt;/code&gt; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Followed multiprocessing &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;forkserver&lt;/span&gt;&lt;/code&gt; changes for
newer Python versions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.12+:&lt;/strong&gt; Fix, generic class type parameters handling was
incorrect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.12:&lt;/strong&gt; Fix, deferred evaluation of type aliases was
failing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.12+:&lt;/strong&gt; Aligned &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sum&lt;/span&gt;&lt;/code&gt; built-in float summation with
CPython’s compensated sum for better accuracy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.10+:&lt;/strong&gt; Fix, uncompiled coroutine &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;throw()&lt;/span&gt;&lt;/code&gt; return
handling was incorrect, restoring completed coroutine results via
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;StopIteration.value&lt;/span&gt;&lt;/code&gt; rather than exposing them as ordinary return
values to the outer await chain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.13+:&lt;/strong&gt; Fix, uncompiled coroutine &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;cancel()/await&lt;/span&gt;&lt;/code&gt;
suspension handling was incorrect, improved to ensure integration
compatibility.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Made finding &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;create-dmg&lt;/span&gt;&lt;/code&gt; more robustly by also checking
the Homebrew path for Intel and from &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;PATH&lt;/span&gt;&lt;/code&gt; properly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compatibility:&lt;/strong&gt; Fix, class frames were not exposing frame locals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Detected &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;static-libpython&lt;/span&gt;&lt;/code&gt; problems, which affected some
forms of Anaconda.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Distutils:&lt;/strong&gt; Rejected &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--project&lt;/span&gt;&lt;/code&gt; mixed with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--main&lt;/span&gt;&lt;/code&gt; arguments
as it is not useful.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Fix, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;zig&lt;/span&gt;&lt;/code&gt; from &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;PATH&lt;/span&gt;&lt;/code&gt; or from &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ziglang&lt;/span&gt;&lt;/code&gt; was not
being used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Distutils:&lt;/strong&gt; Fix, the wrong &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;module-root&lt;/span&gt;&lt;/code&gt; config value was being
checked for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;uv&lt;/span&gt;&lt;/code&gt; build backend.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Fix, was attempting to change removed (rejected) DLLs,
which of course failed and errored out.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Fix, tuple reuse was not fully compatible,
potentially causing crashes due to outdated hash caches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, fake modules were still being attempted to located when imported
by other code, which could conflict with existing modules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.5+:&lt;/strong&gt; Fix, failed to send uncompiled coroutines the sent
in value in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;yield&lt;/span&gt; &lt;span class="pre"&gt;from&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, older &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;gcc&lt;/span&gt;&lt;/code&gt; compilers lacking newer intrinsic methods had
compilation issues that needed to be addressed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Fix, multiphase module extension modules with
post-load code were not working properly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, Avoid using the non-inline copy of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pkg_resources&lt;/span&gt;&lt;/code&gt; with the
inline copy of Jinja2. These could mismatch and cause errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, loops could make releasing of previous values very unclear,
causing optimization errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;incbin&lt;/span&gt;&lt;/code&gt; resource mode was not working with old &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;gcc&lt;/span&gt;&lt;/code&gt; C++
fallback.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.4 to 3.6:&lt;/strong&gt; Fix, bytecode demotion was not working
properly for these versions, also bytecode only files not working.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Added a check for the broken &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;patchelf&lt;/span&gt;&lt;/code&gt; versions 0.10
and 0.11 to prevent breaking Qt plugins.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Android:&lt;/strong&gt; Allowed &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;patchelf&lt;/span&gt;&lt;/code&gt; version 0.18 on Android.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Fix, the header path for self uninstalled Python was not
detected correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Release:&lt;/strong&gt; Fix, inclusion of the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pkg_resources&lt;/span&gt;&lt;/code&gt; inline copy for
Python 2 to source distributions was missing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Detected the OBS versions of SUSE Linux better.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Suse:&lt;/strong&gt; Allowed using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;patchelf&lt;/span&gt;&lt;/code&gt; 0.18.0 there too.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.11:&lt;/strong&gt; Fix, package and module dicts were not aligned close
enough to avoid a CPython bug.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, unbound compiled methods could crash when called without an
object passed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Fix, multiphase module extension modules with
postload. (Fixed in 4.0.8 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Onefile:&lt;/strong&gt; Fix, while waiting for the child, it may already be
terminated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Removed existing absolute rpaths for Homebrew and
MacPorts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Avoided warning in CPython headers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Followed allocator changes more closely.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compatibility:&lt;/strong&gt; Avoided using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pkg_resources&lt;/span&gt;&lt;/code&gt; for Jinja2
template location for loading.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No-GIL:&lt;/strong&gt; Applied some bug fixes to get basic things to work.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="package-support"&gt;
&lt;h2&gt;Package Support&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Add support for newer &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;paddle&lt;/span&gt;&lt;/code&gt; version. (Added in
4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Add workaround for refcount checks of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pandas&lt;/span&gt;&lt;/code&gt;.
(Fixed in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Add support for newer &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;h5py&lt;/span&gt;&lt;/code&gt; version. (Added in
4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Add support for newer &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;scipy&lt;/span&gt;&lt;/code&gt; package. (Added in
4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Revert accidental &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;os.getenv&lt;/span&gt;&lt;/code&gt; over &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;os.environ.get&lt;/span&gt;&lt;/code&gt;
changes in anti-bloat configurations that stopped them from working.
Affected packages are &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;networkx&lt;/span&gt;&lt;/code&gt;, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;persistent&lt;/span&gt;&lt;/code&gt;, and
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;tensorflow&lt;/span&gt;&lt;/code&gt;. (Fixed in 4.0.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added missing DLLs for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;openvino&lt;/span&gt;&lt;/code&gt;. (Added in 4.0.7
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhanced the package configuration YAML schema by adding the
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;relative_to&lt;/span&gt;&lt;/code&gt; parameter for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;from_filenames&lt;/span&gt;&lt;/code&gt; DLL specification,
avoiding error-prone purely relative paths.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Fix, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;flet_desktop&lt;/span&gt;&lt;/code&gt; app assets were missing, now
preserving the packaged runtime and sidecar DLLs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;tyro&lt;/span&gt;&lt;/code&gt; package.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added data files for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;perfetto&lt;/span&gt;&lt;/code&gt; package.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;anyio&lt;/span&gt;&lt;/code&gt; process forking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;plotly.graph&lt;/span&gt;&lt;/code&gt; package.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Anaconda:&lt;/strong&gt; Fix, dependencies for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;numpy&lt;/span&gt;&lt;/code&gt; conda package on
Windows were incorrect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Enhanced the auto-icon hack in PySide6 to use compatible
class names.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Fix, Qt libraries were duplicated with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;PySide6&lt;/span&gt;&lt;/code&gt;
WebEngine framework support on macOS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Fix, automatic detection of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;mypyc&lt;/span&gt;&lt;/code&gt; runtime
dependencies was including all top level modules of the containing
package by accident. (Fixed in 4.0.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Anaconda:&lt;/strong&gt; Fix, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;delvewheel&lt;/span&gt;&lt;/code&gt; plugin was not working with Python
3.8+. This enhances compatibility with installed PyPI packages that
use it for their DLLs. (Fixed in 4.0.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Fix, our protection workaround could confuse methods
used with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;PySide6&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="new-features"&gt;
&lt;h2&gt;New Features&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Added the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--recommended-python-version&lt;/span&gt;&lt;/code&gt; option to display
recommended Python versions for supported, working, or commercial
usage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Add message to inform users about &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Nuitka[onefile]&lt;/span&gt;&lt;/code&gt; if
compression is not installed. (Added in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Add support for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;uv_build&lt;/span&gt;&lt;/code&gt; in the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--project&lt;/span&gt;&lt;/code&gt; option.
(Added in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Onefile:&lt;/strong&gt; Allow extra includes as well. (Added in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Add &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;nuitka-project-set&lt;/span&gt;&lt;/code&gt; feature to define project
variables, checking for collisions with reserved runtime variables.
(Added in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Added new option to select &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--reproducible&lt;/span&gt;&lt;/code&gt; builds or
not. (Added in 4.0.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.10+:&lt;/strong&gt; Added support for
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;importlib.metadata.package_distributions()&lt;/span&gt;&lt;/code&gt;. (Added in 4.0.8
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Added support for the multiprocessing &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;forkserver&lt;/span&gt;&lt;/code&gt;
context. (Added in 4.0.8 already, for 4.1 Python 3.6 and earlier, as
well as 3.14 support were added too.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reports:&lt;/strong&gt; Added structured resource usage (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;rusage&lt;/span&gt;&lt;/code&gt;) performance
information to compilation reports.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reports:&lt;/strong&gt; Included individual module-level C compiler caching
(&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ccache&lt;/span&gt;&lt;/code&gt;/&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;clcache&lt;/span&gt;&lt;/code&gt;) statistics in compilation reports.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added support for detecting and correctly resolving the Python prefix
for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;PyEnv&lt;/span&gt; &lt;span class="pre"&gt;on&lt;/span&gt; &lt;span class="pre"&gt;Homebrew&lt;/span&gt;&lt;/code&gt; Python flavor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Added support for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;rusage&lt;/span&gt;&lt;/code&gt; information for Scons.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Added the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;__compiled__.extension_filename&lt;/span&gt;&lt;/code&gt; attribute to
give the real filename of the containing extension module.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Added support for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--clang&lt;/span&gt;&lt;/code&gt; or ARM. (Added in 4.0.8
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Added support for resources names as not just integers,
important when we copy them from template files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;MacPorts:&lt;/strong&gt; Added basic support for this Python flavor. More work
will be needed to get it to work fully though.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="optimization"&gt;
&lt;h2&gt;Optimization&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Avoid including &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;importlib._bootstrap&lt;/span&gt;&lt;/code&gt; and
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;importlib._bootstrap_external&lt;/span&gt;&lt;/code&gt;. (Added in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt; Cached the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;syscall&lt;/span&gt;&lt;/code&gt; used for time keeping during
compilation to avoid loading &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;libc&lt;/span&gt;&lt;/code&gt; for each trace. (Added in 4.0.8
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Output a warning for modules that remain unfinished after the
third optimization pass.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added an extra micro pass trigger when new variables are introduced
or variable usage changes severely, ensuring optimizations are fully
propagated, avoiding unnecessary extra full passes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provided scripts to compile Python statically with PGO tailored for
Nuitka on Linux, Windows, and macOS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added support for running the Data Composer tool from a compiled
Nuitka binary without spawning an uncompiled Python process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhanced the usage of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;vectorcall&lt;/span&gt;&lt;/code&gt; for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;PyCFunction&lt;/span&gt;&lt;/code&gt; objects by
directly checking for its presence instead of relying purely on
flags, allowing more frequent use of this faster execution path.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cached frequently used declarations for top-level variables to speed
up C code generation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sped up trace collection merging by avoiding unnecessary set creation
and using a set instead of a list for escaped traces.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optimized plugin hook execution by tracking overloaded methods and
added an option to show plugin usage statistics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved performance of module location by avoiding unnecessary
module name reconstruction and redundant filesystem checks for
pre-loaded packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved the caching of distribution name lookups to effectively
avoid repeated IO operations across all package types.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Cached callback plugin dispatch for
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;onFunctionBodyParsing&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;onClassBodyParsing&lt;/span&gt;&lt;/code&gt; to skip argument
computation when no plugin overrides them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.13:&lt;/strong&gt; Handled sub-packages of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pathlib&lt;/span&gt;&lt;/code&gt; as hard modules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Handled hard attributes through merge traces as well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Made constant blobs more compact by avoiding repeated identifiers and
unnecessary fields.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhanced Python compilation scripts further. (Fixed in 4.0.8
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Recognized late incomplete variables better. (Fixed in 4.0.8
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Made constant blobs more compact. (Fixed in 4.0.8 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optimized calls with only constant keywords and variable posargs too.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="anti-bloat"&gt;
&lt;h2&gt;Anti-Bloat&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Fix, memory bloat occurred when C compiling &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sqlalchemy&lt;/span&gt;&lt;/code&gt;. (Fixed in
4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pydoc&lt;/span&gt;&lt;/code&gt; in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;PySimpleGUI&lt;/span&gt;&lt;/code&gt;. (Added in 4.0.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoided using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;doctest&lt;/span&gt;&lt;/code&gt; from &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;zodbpickle&lt;/span&gt;&lt;/code&gt;. (Added in 4.0.5
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoided inclusion of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;cython&lt;/span&gt;&lt;/code&gt; when using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pyav&lt;/span&gt;&lt;/code&gt;. (Added in 4.0.7
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoided including &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;typing_extensions&lt;/span&gt;&lt;/code&gt; when using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;numpy&lt;/span&gt;&lt;/code&gt;. (Added
in 4.0.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="organizational"&gt;
&lt;h2&gt;Organizational&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Relocated the warning about the available source code of
extension modules to be evaluated at a more appropriate time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debian:&lt;/strong&gt; Remove recommendation for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;libfuse2&lt;/span&gt;&lt;/code&gt; package as it is
no longer useful.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debian:&lt;/strong&gt; Used &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;platformdirs&lt;/span&gt;&lt;/code&gt; instead of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;appdirs&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Removed Python 3.11+ restriction for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;clang-format&lt;/span&gt;&lt;/code&gt;
as it is available everywhere, even Python 2.7, and we still want
nicely formatted code when we read things. (Added in 4.0.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Removed no longer useful inline copy of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;wax_off&lt;/span&gt;&lt;/code&gt;. We have our own
stubs generator project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Release:&lt;/strong&gt; Added missing package to the CI container for building
Nuitka Debian packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developer:&lt;/strong&gt; Updated AI instructions for creating Minimal
Reproducible Examples (MRE) to skip unneeded C compilation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Added an internal function for checking if a string is
a valid Python identifier.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI:&lt;/strong&gt; Added a task in Visual Studio Code to export the currently
selected Python interpreter path to a file, making it available as
“python” and “pip” matching the selected interpreter. This makes it
easier to use a specific version with no instructions needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI:&lt;/strong&gt; Updated the rules to instruct AI to only generate useful
comments that add context not present in the code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Containers:&lt;/strong&gt; Added template rendering support for Jinja2 (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;.j2&lt;/span&gt;&lt;/code&gt;)
container files in our internal Podman tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Projects:&lt;/strong&gt; Clarified the current status and rationale of Python
2.6 support in the developer manual.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Added experimental flag
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--experimental=ignore-extra-micro-pass&lt;/span&gt;&lt;/code&gt; to allow ignoring extra
micro pass detection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Visual Code:&lt;/strong&gt; Added integration scripts for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;bash&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;zsh&lt;/span&gt;&lt;/code&gt;
autocompletion of Nuitka CLI options. These are now also integrated
into Visual Studio Code terminal profiles and the Debian package.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;RPM:&lt;/strong&gt; Included the Python compile script for Linux.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;RPM:&lt;/strong&gt; Removed the requirement for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;distutils&lt;/span&gt;&lt;/code&gt; in the spec.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="tests"&gt;
&lt;h2&gt;Tests&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Install only necessary build tools for test cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoided spurious failures in reference counting tests due to Python
internal caching differences. (Fixed in 4.0.3 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, the parsing of the compilation report for reflected tests was
incorrect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Ignored a syntax error message change.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Added test execution support options to the main
test runner to use this version as well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, the runner binary path was mishandled for the third pass of
reflected compilations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Removed the usage of obsolete plugins in reflected compilation tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Prevented boolean testing of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;namedtuples&lt;/span&gt;&lt;/code&gt; to avoid
unexpected bugs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Test&lt;/span&gt;&lt;/code&gt; suffix to syntax test files and disabled “python”
mode and spell checking for them to resolve issues reported in IDEs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fix, newline handling in diff outputs from the output comparison tool
was incorrect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Covered &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;post-import-code&lt;/span&gt;&lt;/code&gt; functionality with a new subpackage test
case.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prevented the program test suite from running an unnecessary variant
to save execution time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Ignored differences from GUI framework error traces in
headless runs in output comparisons.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reflected test for Nuitka, where it compiles itself and compares its
operation has been restored to functional state.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used the new method to clear internal caches if available for
reference counts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Disabled running nested loops test with Python 2.6.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Containers:&lt;/strong&gt; Detected Python 2 defaulting containers in Podman
tooling.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="cleanups"&gt;
&lt;h2&gt;Cleanups&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Fix, there was a double space in the Windows Runtime DLLs
inclusion message. (Fixed in 4.0.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Onefile:&lt;/strong&gt; Separated files and defines for extra includes for
onefile boot and Python build.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Provided nicer errors in case of “unset” variables being
used, so we can tell it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Refactored the process execution results to correctly utilize our
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;namedtuples&lt;/span&gt;&lt;/code&gt; variant, that makes it easier to understand what code
does with the results.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Enabled automatic conversion of em-dashes and en-dashes
in code comments to the autoformat tool. AI won’t stop producing them
and they can cause &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SyntaxError&lt;/span&gt;&lt;/code&gt; for older Python versions, nor is
unnecessarily using UTF-8 welcome.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensured that cloned outline nodes are assigned their correct names
immediately upon creation, that avoids inconsistencies during their
creation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Updated to the latest versions of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;black&lt;/span&gt;&lt;/code&gt; and adopted
a faster &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;isort&lt;/span&gt;&lt;/code&gt; execution by caching results.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Modified the PyLint wrapper to exit gracefully instead
of raising an error when no matching files require checking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Avoided checking YAML package configuration files twice,
since autoformat already handles them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Ensured that YAML package configuration checks output
the original filename instead of the temporary one when a failure
occurs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Prevented pushing of tags from triggering git pre-push
quality checks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Silenced the output of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;optipng&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;jpegoptim&lt;/span&gt;&lt;/code&gt;
during image optimization auto-formatting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Visual Code:&lt;/strong&gt; Added the generated Python alias path file to the
ignore list.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Enabled auto-formatting for the Nuitka devcontainer
configuration file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Watch:&lt;/strong&gt; Avoided absolute paths in compilation to make reports more
comparable across machines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Changed &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;mdformat&lt;/span&gt;&lt;/code&gt; checks to run only once and
silently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Disabled format security errors in debug mode and moved
Python-related warning disables into common build setup code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Updated to the latest &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;deepdiff&lt;/span&gt;&lt;/code&gt; version.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Avoided MSVC telemetry since it can produce outputs that
break CI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Enhanced non-deployment handler for importing excluded
modules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Split import module finding functionality into more pieces for
enhanced readability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Added more assertions for constants loading and
checking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Dropped the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;universal&lt;/span&gt;&lt;/code&gt; target arch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Added more traces for deep hash verification.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="summary"&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;This release builds on the scalability improvements established in 4.0,
with enhanced Python 3.14 support, expanded package compatibility, and
significant optimization work.&lt;/p&gt;
&lt;p&gt;The &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--project&lt;/span&gt;&lt;/code&gt; option seems usable now.&lt;/p&gt;
&lt;p&gt;Python 3.14 support remains experimental, but only barely made the cut,
and probably will get there in hotfixes. Some of the corrections came in
so late before the release, that it was just not possible to feel good
about declaring it fully supported just yet.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://nuitka.net/posts/nuitka-release-41.html"/>
    <summary>This is to inform you about the new stable release of Nuitka. It is the extremely compatible Python compiler,
“download now”.</summary>
    <category term="Nuitka" label="Nuitka"/>
    <category term="Python" label="Python"/>
    <category term="compiler" label="compiler"/>
    <published>2026-06-16T00:00:00+02:00</published>
  </entry>
  <entry>
    <id>https://nuitka.net/posts/nuitka-release-40.html</id>
    <title>Nuitka Release 4.0</title>
    <updated>2026-04-22T19:03:00+02:00</updated>
    <author>
      <name>Kay Hayen</name>
    </author>
    <content type="html">&lt;section id="nuitka-release-4-0"&gt;

&lt;p&gt;This is to inform you about the new stable release of &lt;a class="reference external" href="https://nuitka.net"&gt;Nuitka&lt;/a&gt;. It is the extremely compatible Python compiler,
&lt;a class="reference external" href="/doc/download.html"&gt;“download now”&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This release is a major release with many new features and the long
wanted improvements for scalability of the Python compilation.&lt;/p&gt;
&lt;section id="bug-fixes"&gt;
&lt;h2&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accelerated:&lt;/strong&gt; The enhanced detection for uninstalled Anaconda and
WinPython was not fully working. (Fixed in 2.8.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Onefile:&lt;/strong&gt; Fixed an issue in DLL mode where signal handlers were
not being registered, which could prevent proper program termination
on signals like CTRL-C. (Fixed in 2.8.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Fixed incorrect handling of forward slashes in cache
directory paths, which caused issues with Nuitka-Action. (Fixed in
2.8.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; The &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--output-dir&lt;/span&gt;&lt;/code&gt; option was not being honored in
accelerated mode when &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--output-filename&lt;/span&gt;&lt;/code&gt; was also provided. (Fixed
in 2.8.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; The &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--output-filename&lt;/span&gt;&lt;/code&gt; option help said it wouldn’t work
for standalone mode when in fact it did for a while already. (Fixed
in 2.8.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Onefile:&lt;/strong&gt; On &lt;strong&gt;Windows&lt;/strong&gt;, fixed a crash when using
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--output-dir&lt;/span&gt;&lt;/code&gt; where it was checking for the wrong folder to exist.
(Fixed in 2.8.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Fixed a crash that could occur when many package-specific
directories were used, which could lead to the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;otool&lt;/span&gt;&lt;/code&gt; command line
being too long. (Fixed in 2.8.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; For the “Python Build Standalone” flavor, ensured
that debug builds correctly recognize all their specific built-in
modules, preventing potential errors. (Fixed in 2.8.4 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Fixed an issue where &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;$ORIGIN&lt;/span&gt;&lt;/code&gt; r-paths were set but
ended up unused, which in some cases caused errors by exhausting the
header space and preventing the build entirely. (Fixed in 2.8.5
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Fixed an issue to ensure the system &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;xattr&lt;/span&gt;&lt;/code&gt; binary is
used.&lt;/p&gt;
&lt;p&gt;Otherwise, using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;arch&lt;/span&gt; &lt;span class="pre"&gt;-x86_64&lt;/span&gt; &lt;span class="pre"&gt;python&lt;/span&gt;&lt;/code&gt; for compilation could fail
when some packages are installed that provide &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;xattr&lt;/span&gt;&lt;/code&gt; as well,
because that might be an &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;arm64&lt;/span&gt;&lt;/code&gt; binary only and would not work.
(Fixed in 2.8.5 already.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Fixed a misleading typo in the rejection message for
unsupported Python 3.13.4. (Fixed in 2.8.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accelerated:&lt;/strong&gt; The runner scripts &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;.cmd&lt;/span&gt;&lt;/code&gt; or &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;.sh&lt;/span&gt;&lt;/code&gt; now are also
placed respecting the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--output-filename&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--output-dir&lt;/span&gt;&lt;/code&gt;
options. (Fixed in 2.8.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Ensured that plugins detected by namespace usage are
also activated in module mode. (Fixed in 2.8.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Fixed an issue where non-existent packages listed in
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;top_level.txt&lt;/span&gt;&lt;/code&gt; files could cause errors during metadata
collection. (Fixed in 2.8.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Corrected the classification of the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;site&lt;/span&gt;&lt;/code&gt; module,
which was previously treated as a standard library module in some
cases. (Fixed in 2.8.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Ensured that temporary link libraries and export files
created during compilation are properly deleted, preventing them from
being included in the standalone distribution. (Fixed in 2.8.6
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python3.14:&lt;/strong&gt; Adapted to core changes by no longer inlining
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;hacl&lt;/span&gt;&lt;/code&gt; code for this version. (Fixed in 2.8.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Follow allocator changes and immortal flags changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Follow GC changes for compiled frames as well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Catch attempts to clear a compiled suspended frame
object.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fixed a potential mis-optimization for uses of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;locals()&lt;/span&gt;&lt;/code&gt; when
transforming the variable name reference call. (Fixed in 2.8.6
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Module:&lt;/strong&gt; Fixed &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pkgutil.iter_modules&lt;/span&gt;&lt;/code&gt; not working when loading a
module into a namespace. (Fixed in 2.8.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reports:&lt;/strong&gt; Fixed a crash when creating the compilation report
before the source directory is created. (Fixed in 2.8.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Fixed ignoring of non-existent packages from
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;top_level.txt&lt;/span&gt;&lt;/code&gt; for metadata. (Fixed in 2.8.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; The &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--no-progress-bar&lt;/span&gt;&lt;/code&gt; option was not disabling the
&lt;strong&gt;Scons&lt;/strong&gt; progress bars. (Fixed in 2.8.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Fixed an exception in the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;tqdm&lt;/span&gt;&lt;/code&gt; progress bar during
process shutdown. (Fixed in 2.8.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Fixed incorrect &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sys.executable&lt;/span&gt;&lt;/code&gt; value in onefile DLL
mode. (Fixed in 2.8.9 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python3.14:&lt;/strong&gt; Added missing implicit dependency for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;_ctypes&lt;/span&gt;&lt;/code&gt; on
&lt;strong&gt;Windows&lt;/strong&gt;. (Fixed in 2.8.9 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python3.13+:&lt;/strong&gt; Fixed missing export of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;PyInterpreter_*&lt;/span&gt;&lt;/code&gt; API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python3.14:&lt;/strong&gt; Adapted to change in evaluation order of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;__exit__&lt;/span&gt;&lt;/code&gt;
and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;__enter__&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multiprocessing:&lt;/strong&gt; Fixed issue where &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sys.argv&lt;/span&gt;&lt;/code&gt; was not yet
corrected when &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;argparse&lt;/span&gt;&lt;/code&gt; was used early in spawned processes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Fixed an issue where Zig was not used as a fallback when
MinGW64 was present but unusable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Made onefile binary work on systems without runtime DLLs
installed as well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Made tracing robust against threaded outputs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python3.12+:&lt;/strong&gt; Enhanced workaround for loading of extension modules
with sub-packages to cover more cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Fixed missing Zig version output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Fixed Zig detection to enforce PATH or CC usage on macOS
instead of download, since it’s not available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Fixed normalization of user paths, improving macOS support
for reporting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt; Fixed the workaround for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;memset&lt;/span&gt;&lt;/code&gt; zero length
warning, which was wrongly applied to &lt;strong&gt;Clang&lt;/strong&gt;. Only &lt;strong&gt;GCC&lt;/strong&gt;
requires it, and &lt;strong&gt;Clang&lt;/strong&gt; complained about it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt; More robust fallback to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;g++&lt;/span&gt;&lt;/code&gt; when &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;gcc&lt;/span&gt;&lt;/code&gt; is too old
for C11 support.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compatibility:&lt;/strong&gt; Fixed a bug where &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;del&lt;/span&gt;&lt;/code&gt; of a subscript could
cause wrong runtime behavior due to missing control flow escape
annotations for the subscript value itself and the index.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Fixed an issue where &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Info.plist&lt;/span&gt;&lt;/code&gt; user-facing
entitlements keys mapping to multiple internal entitlements were not
handled correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Ensured tracing uses at least 80 characters for very narrow
terminals to maintain readability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compatibility:&lt;/strong&gt; Fixed an issue where nested loops could have
incorrect traces, potentially leading to mis-optimizations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt; Fixed an issue where &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;_XOPEN_SOURCE&lt;/span&gt;&lt;/code&gt; was mistakenly
appended for Clang, causing warnings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Improved passed variables handling by detecting &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;None&lt;/span&gt;&lt;/code&gt;
or invalid types earlier.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fixed a bug where propagating class dictionaries needed extra micro
passes to ensure proper optimization of their traces for the new
variables.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Fixed an issue with process spawning when using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;rusage&lt;/span&gt;&lt;/code&gt;
capture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Followed the file closing behavior of the standard
communicate closer to avoid potential hangs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="package-support"&gt;
&lt;h2&gt;Package Support&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Anti-Bloat:&lt;/strong&gt; Avoided a warning during program shutdown when using
a compiled &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;xgboost&lt;/span&gt;&lt;/code&gt; package. (Fixed in 2.8.1 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;oracledb&lt;/span&gt;&lt;/code&gt; package. (Fixed in
2.8.2 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Added support for newer &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;PySide6&lt;/span&gt;&lt;/code&gt; versions. (Fixed in
2.8.4 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for including more metadata for the
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;transformers&lt;/span&gt;&lt;/code&gt; package. (Fixed in 2.8.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Metadata from Nuitka Package Configuration is now
only included if the corresponding package is part of the
compilation. (Fixed in 2.8.5 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;win32ctypes&lt;/span&gt;&lt;/code&gt; package. (Fixed
in 2.8.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for newer versions of the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;dask&lt;/span&gt;&lt;/code&gt;
package. (Fixed in 2.8.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;dataparser&lt;/span&gt;&lt;/code&gt; package. (Added
in 2.8.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;puremagic&lt;/span&gt;&lt;/code&gt;, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pygments.lexers&lt;/span&gt;&lt;/code&gt;
and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;tomli&lt;/span&gt;&lt;/code&gt; in standalone mode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added automatic detection of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;mypyc&lt;/span&gt;&lt;/code&gt; runtime
dependencies, no need to manually configure that anymore. Also our
configuration was often only correct for a single OS, and single
upstream versions which is now fixed for packages having it before.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for the newer &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;av&lt;/span&gt;&lt;/code&gt; (PyAV) package
version.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sentry_sdk&lt;/span&gt;&lt;/code&gt;, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;jedi&lt;/span&gt;&lt;/code&gt;,
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;parso&lt;/span&gt;&lt;/code&gt;, and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;line_profiler&lt;/span&gt;&lt;/code&gt; packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Added support for newer &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pandas&lt;/span&gt;&lt;/code&gt; versions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="new-features"&gt;
&lt;h2&gt;New Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Added support for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--project&lt;/span&gt;&lt;/code&gt; parameter to build using
configuration from &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pyproject.toml&lt;/span&gt;&lt;/code&gt; (e.g. Poetry, Setuptools).&lt;/p&gt;
&lt;p&gt;With this, you can simply run &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;python&lt;/span&gt; &lt;span class="pre"&gt;-m&lt;/span&gt; &lt;span class="pre"&gt;nuitka&lt;/span&gt; &lt;span class="pre"&gt;--project&lt;/span&gt;
&lt;span class="pre"&gt;--mode=onefile&lt;/span&gt;&lt;/code&gt; and it will use the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pyproject.toml&lt;/span&gt;&lt;/code&gt; or
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;setup.py/setup.cfg&lt;/span&gt;&lt;/code&gt; files to get the configuration and build the
Nuitka binary.&lt;/p&gt;
&lt;p&gt;Previously Nuitka could only be used for building wheels with
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;build&lt;/span&gt;&lt;/code&gt; package, and for building wheels that is still the best
way.&lt;/p&gt;
&lt;p&gt;The &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--project&lt;/span&gt;&lt;/code&gt; option is currently compatible with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;build&lt;/span&gt;&lt;/code&gt; and
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;poetry&lt;/span&gt;&lt;/code&gt; and detects the used build system automatically.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zig:&lt;/strong&gt; Added experimental support for using &lt;strong&gt;Zig&lt;/strong&gt; project’s &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;zig&lt;/span&gt;
&lt;span class="pre"&gt;cc&lt;/span&gt;&lt;/code&gt; as a C compiler backend for &lt;strong&gt;Nuitka&lt;/strong&gt;. This can be enabled by
setting the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;CC&lt;/span&gt;&lt;/code&gt; environment variable to point to the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;zig&lt;/span&gt;&lt;/code&gt; or
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;zig.exe&lt;/span&gt;&lt;/code&gt; executable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reports:&lt;/strong&gt; Started capturing &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;rusage&lt;/span&gt;&lt;/code&gt; for OSes that support it.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Only POSIX-compliant OSes will do it (&lt;strong&gt;Linux&lt;/strong&gt;, &lt;strong&gt;macOS&lt;/strong&gt;, and
all &lt;strong&gt;BSD&lt;/strong&gt; variants), but &lt;strong&gt;Android&lt;/strong&gt; does not.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Not yet part of the actual report, as we need to figure out how to
use and present the information.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Added experimental support for enabling Thin LTO with the
&lt;strong&gt;Clang&lt;/strong&gt; compiler.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Honor &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--nofollow-import-to&lt;/span&gt;&lt;/code&gt; for stdlib modules as
well.&lt;/p&gt;
&lt;p&gt;This allows users to manually reduce standard library usage, but it
can also cause crashes from extension modules not prepared for the
absence of standard library modules.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Onefile:&lt;/strong&gt; Allowed disabling the onefile timeout and hard killing
on CTRL-C entirely by providing
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--onefile-child-grace-time=infinity&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Added newer inline copy of &lt;strong&gt;Scons&lt;/strong&gt; which supports Visual
Studio 2026. (Added in 2.8.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Allowed using Python versions only partially supported for
&lt;strong&gt;Nuitka&lt;/strong&gt; with &lt;strong&gt;Scons&lt;/strong&gt;. (Added in 2.8.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Added option &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--devel-profile-compilation&lt;/span&gt;&lt;/code&gt; for compile time
profiling. Also renamed the old runtime profiling option
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--profile&lt;/span&gt;&lt;/code&gt; to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--debug-profile-runtime&lt;/span&gt;&lt;/code&gt;, that is however still
broken.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reports:&lt;/strong&gt; Including CPU instr and cycle counters in timing on
native Linux.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;With appropriate configuration on Linux this allows to get at very
precise timing configuration so we can judge even small compile
time improvements correctly. We then don’t need many runs to
average out noise from other effects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Don’t use wall clock but process time for steps that are not doing
IO like module optimization for more accurate values otherwise, it
is however not very accurate still.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python3.12+:&lt;/strong&gt; Added support for function type syntax (generics).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python3.14:&lt;/strong&gt; Added groundwork for deferred evaluation of function
annotations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python3.14:&lt;/strong&gt; Added support for uncompiled generator integration
which is crucial for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;asyncio&lt;/span&gt;&lt;/code&gt; correctness and general usability
with modern frameworks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Added &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--debug-self-forking&lt;/span&gt;&lt;/code&gt; to debug fork bombs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Added &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--include-windows-runtime-dlls&lt;/span&gt;&lt;/code&gt; option to
control inclusion of Windows C runtime DLLs. Defaults to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;auto&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python 3.14:&lt;/strong&gt; Added experimental support for deferred annotations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt; Added option &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--qt-debug-plugins&lt;/span&gt;&lt;/code&gt; for debugging Qt
plugin loading.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DLLs:&lt;/strong&gt; Added support for DLL tags to potentially control inclusion
with more granularity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Added support for many more protected resource
entitlements (Siri, Bluetooth, HomeKit, etc.) to the bundle details.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python:&lt;/strong&gt; Added support for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;nuitka_ignore&lt;/span&gt;&lt;/code&gt; decorator to exclude
functions from compilation.&lt;/p&gt;
&lt;div class="highlight-python notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nd"&gt;@nuitka_ignore&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;my_cpython_func&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="c1"&gt;# This function is not compiled, but stays bytecode&lt;/span&gt;
    &lt;span class="o"&gt;...&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Added support for merging user and standard YAML Nuitka
package configurations, currently only including proper merging of
implicit imports.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="optimization"&gt;
&lt;h2&gt;Optimization&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Avoid making duplicate hard imports by dropping assignments if the
variable was already assigned to the same value.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Found previous assignment traces faster.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The assignment and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;del&lt;/span&gt;&lt;/code&gt; nodes were using functions to find what
they already knew from the last micro pass. The
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;self.variable_trace&lt;/span&gt;&lt;/code&gt; already kept track of the previous value
trace situation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For matching unescaped traces we will do similar, but it’s not
really used right now, so make it only a TODO as that will
eventually be very similar.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Also speeds up the first micro pass even more, because it doesn’t
have to search and do other things. If no previous trace exists,
none is attempted to be used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Also the common check if no by-name uses or merges of a value
occurred was always used inverted and now should be slightly
faster to use and allow to short-circuit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;While this accelerated the first micro pass by a lot for
per-assignment work, it mainly means to cleanup the design such
that traces are easier to re-recognize. And this is a first step
with immediate impacts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Much faster Python passes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The “Escape” and “Unknown” traces now have their own number
spaces. This allows doing some quick checks for a trace without
using the actual object, but just its number.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Narrow the scope of variables to the outline scope that uses them,
so that they don’t need to be dealt with in merging later code
where they don’t ever change anymore and are not used at all.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When checking for unused variables, do not ask the trace
collection to filter its traces. Instead it works off the ones
attached to the variable already. This avoids a lot of searching
work. It also uses a method to decide if a trace constitutes usage
rather than a long &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;elif&lt;/span&gt;&lt;/code&gt; chain.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Faster variable trace maintenance.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We now trace variables in trace collection as a dictionary per
variable with a dictionary of the versions, this is closer to our
frequent usage per variable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;That makes it a lot easier to update variables after the tracing
is finished to know their users and writers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Requires a lot less work, but also makes work less memory local
such that the performance gain is relatively small despite less
work being done.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It also avoids having to maintain a per-variable set for its using
scopes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Decide presence of writing traces for parameter variables faster.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid unnecessary micro passes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Detect variable references discarded sooner for better micro-pass
efficiency. We were spending an extra pass on the whole module to
stabilize the variable usage, which can end up being a lot of
work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After a module optimization pass found no changes, we no longer
make an extra micro pass to avoid stabilization bugs, but only
check against it not happening in debug mode. Depending on the
number of micro passes, this can be a relatively high performance
gain. For the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;telethon.tl.types&lt;/span&gt;&lt;/code&gt; module this was a 13%
performance gain on top.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For “PASS 1” of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;telethon.tl.types&lt;/span&gt;&lt;/code&gt;, which has been one of the
known troublemakers with many classes and type annotations, all
changes combined improve the compilation time by 1500%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Faster code generation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Indentation in generated C code is no longer performed to speed up
code generation. To restore readability, use the new option
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--devel-generate-readable-code&lt;/span&gt;&lt;/code&gt; which will use &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;clang-format&lt;/span&gt;&lt;/code&gt;
to format the C code.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Recognized module variable usages inside outlined functions that are
in a loop, which improves the effectiveness of caching at run-time.
(Added in 2.8.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standalone:&lt;/strong&gt; Partially solved a TODO of minimizing intermediate
directories in r-paths of ELF platforms, by only putting them there
if the directory they point to will contain DLLs or binaries. This
removes unused elements and reduces r-path size.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; Made the caching of external paths effective, which
significantly speeds up DLL resolution in subsequent compilations.
(Fixed in 2.8.6 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; Removed extended attributes from data files as well,
improving performance. (Fixed in 2.8.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Stopped detecting installed &lt;strong&gt;MinGW&lt;/strong&gt; to avoid overhead as
it is not supported. (Fixed in 2.8.9 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Added caching for MSVC information to reduce compilation
time and if already available, use that to detect Windows SDK
location rather that using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;vswhere.exe&lt;/span&gt;&lt;/code&gt; each time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid computing large &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;%&lt;/span&gt;&lt;/code&gt; string interpolations at compile time.
These could cause constants to be included in the binary as a result.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid including &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;importlib._bootstrap&lt;/span&gt;&lt;/code&gt; and
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;importlib._bootstrap_external&lt;/span&gt;&lt;/code&gt; as they are available as frozen
modules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fixed un-hashable dictionary keys not being properly optimized,
forcing runtime handling.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="anti-bloat"&gt;
&lt;h2&gt;Anti-Bloat&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Avoid including &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;tzdata&lt;/span&gt;&lt;/code&gt; on non-Windows platforms. (Fixed in 2.8.7
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid including &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pyparsing.testing&lt;/span&gt;&lt;/code&gt; in the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pyparsing&lt;/span&gt;&lt;/code&gt; package.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added configuration to avoid compiled via C for large generated files
for the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sqlfluff&lt;/span&gt;&lt;/code&gt; package.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="organizational"&gt;
&lt;h2&gt;Organizational&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Don’t say &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--include-data-files-external&lt;/span&gt;&lt;/code&gt; doesn’t work in
standalone mode.&lt;/p&gt;
&lt;p&gt;It actually has worked for a while, and we since renamed that option,
but the help still said it wouldn’t work in standalone mode.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Added assertions for code object creation.&lt;/p&gt;
&lt;p&gt;We were getting assertions from Python when built with &lt;strong&gt;Zig&lt;/strong&gt;, and
these are supposed to provide those as well.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; In case of tool commands failing, output the too long
command line if that was the error given.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Anti-Bloat:&lt;/strong&gt; Don’t allow custom &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;nofollow&lt;/span&gt;&lt;/code&gt; modes, point the user
to the correct option instead. This was never needed, but two ways of
providing this user decision make no sense.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;UI: The help text for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--include-data-files-external&lt;/span&gt;&lt;/code&gt; was updated
to reflect that it works in standalone mode. (Fixed in 2.8.5
already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Release:&lt;/strong&gt; Use lowercase names for source archives in PyPI uploads.
(Fixed in 2.8.7 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Fixed an issue where “assume yes” was not being passed
for downloads in the commit hook.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Improved wording for missing C compiler message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; More clear verbose trace for dropped expressions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Debugging:&lt;/strong&gt; Output what module had extra changes during debug
extra micro pass.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Manage more development tools (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;clang-format&lt;/span&gt;&lt;/code&gt;, etc.)
via private pip space for better consistency and isolation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI:&lt;/strong&gt; Enhanced pull request template with directions for AI-driven
PRs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI:&lt;/strong&gt; Added agent command &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;create-mre&lt;/span&gt;&lt;/code&gt; to assist in creating a
minimal reproduction example (&lt;strong&gt;MRE&lt;/strong&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User Manual:&lt;/strong&gt; Added documentation about redistribution
requirements for Python 3.12-3.14.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Added &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--un-pushed&lt;/span&gt;&lt;/code&gt; argument to auto-format tool for
checking only un-pushed changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Improved error message to point to Zig support if no C
compiler is found.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;MonolithPy:&lt;/strong&gt; Follow rename of our Python fork to &lt;strong&gt;MonolithPy&lt;/strong&gt; to
avoid confusion with the &lt;strong&gt;Nuitka&lt;/strong&gt; compiler project itself.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scons:&lt;/strong&gt; Prefer English output and warn user for missing English
language pack with MSVC in case or outputs being made.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; When running non-interactively, print the default response
that is assumed for user queries to stdout as well, so it becomes
visible in the logs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Warn when using protected resources options without
standalone/bundle mode enabled on &lt;strong&gt;macOS&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reports:&lt;/strong&gt; Sort DLLs and entry points in compilation reports by
destination path for deterministic output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality:&lt;/strong&gt; Skip files with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;spell-checker:&lt;/span&gt; &lt;span class="pre"&gt;disable&lt;/span&gt;&lt;/code&gt; in
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;codespell&lt;/span&gt;&lt;/code&gt; checks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Release:&lt;/strong&gt; Avoid compiling bytecode for inline copies that are not
compatible with the running &lt;strong&gt;Python&lt;/strong&gt; version during install.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Visual Studio:&lt;/strong&gt; Ignored names in backticks and code blocks in ReST
for spelling checks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Actions:&lt;/strong&gt; Ensured compilation reports are always recorded, even in
case of errors, as they are most useful then.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI:&lt;/strong&gt; Added a workflow &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;create-mre&lt;/span&gt;&lt;/code&gt; to assist in creating a
Minimal Reproducible Example from a larger file triggering a Nuitka
bug. This has guidance on avoiding standalone mode and instructions
for reducing code to just produce a MRE that is really small.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI:&lt;/strong&gt; Added a workflow &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;fix-module-not-found-error&lt;/span&gt;&lt;/code&gt; for solving
simple &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ModuleNotFoundError&lt;/span&gt;&lt;/code&gt; at runtime errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI:&lt;/strong&gt; Added further strategies for Minimal Reproducible Example
(MRE) reduction to the agent workflow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Reject input paths from standard library locations to prevent
compiling files from there as main files.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="tests"&gt;
&lt;h2&gt;Tests&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Added support for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--all&lt;/span&gt;&lt;/code&gt; with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--max-failures&lt;/span&gt;&lt;/code&gt; option to the
test runner to stop after a specified number of failures, or just run
all tests and output the failed tests in the end.&lt;/p&gt;
&lt;p&gt;Also the tests specified can be a glob pattern, to match multiple
tests, not just a test name.&lt;/p&gt;
&lt;p&gt;Added examples to the help output of the runner to guide the usage of
the developers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ignore multiline source code outputs of Python3.14 in tracebacks for
output comparison, Nuitka won’t do those.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added test cases for poetry and distutils. Also verify that
standalone mode works with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--project&lt;/span&gt;&lt;/code&gt; for the supported build
systems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Made the distutils tests cases much more consistent.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Watch:&lt;/strong&gt; Improved binary name detection from compilation reports
for better mode support beyond standalone mode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Allow downloading tools (like &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;clang-format&lt;/span&gt;&lt;/code&gt;) for all test cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added options to enforce &lt;strong&gt;Zig&lt;/strong&gt; or &lt;strong&gt;Clang&lt;/strong&gt; usage for C compiling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Suppress &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pip&lt;/span&gt;&lt;/code&gt; output when not running interactively to avoid test
output differences.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;nuitka.format&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;nuitka.package_config&lt;/span&gt;&lt;/code&gt; to
self-compilation tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added colorization to test comparison diffs if a tty is available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoided using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--nofollow-imports&lt;/span&gt;&lt;/code&gt; in tests as some Python flavors
do not work with it when using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--mode=standalone&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="cleanups"&gt;
&lt;h2&gt;Cleanups&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Moved options to new &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;nuitka.options&lt;/span&gt;&lt;/code&gt; package.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python3.14:&lt;/strong&gt; Fixed a type mismatch warning seen with &lt;strong&gt;MSVC&lt;/strong&gt;.
(Fixed in 2.8.9 already.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Massive amounts of spelling cleanups. Correct spelling is more and
more places allows identification of bugs more immediately, therefore
these are very worthwhile.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code cleanup and style improvements in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Errors&lt;/span&gt;&lt;/code&gt; and
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;OutputDirectories&lt;/span&gt;&lt;/code&gt; modules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Replaced usages of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;os.environ.get&lt;/span&gt;&lt;/code&gt; with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;os.getenv&lt;/span&gt;&lt;/code&gt; for
consistency and denser code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Moved &lt;strong&gt;MSVC&lt;/strong&gt; re-dist detection to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;DllDependenciesWin32&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Release:&lt;/strong&gt; Don’t install &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;zstandard&lt;/span&gt;&lt;/code&gt; by default anymore.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI:&lt;/strong&gt; Tone down complaint about checksum mismatches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Static source files are now provided by Nuitka directly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Renamed C function &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;modulecode_&lt;/span&gt;&lt;/code&gt; to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;module_code_&lt;/span&gt;&lt;/code&gt; for
consistency.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="summary"&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;This release is finally a break-through for scalability. We will
continue the push for scalability in the next release as well, but with
more of a focus on the C compilation step, to generate C code that is
easier for the backend compiler.&lt;/p&gt;
&lt;p&gt;Also, this release finally addresses many usability problems. The
non-deployment hooks for imports not found, that were actively excluded,
are one such thing. The start of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;--project&lt;/span&gt;&lt;/code&gt; enables far easier
adoption of Nuitka for existing projects.&lt;/p&gt;
&lt;p&gt;Other huge improvements are related to generics, they are now much
better support, closing gaps in the Python3.12 support.&lt;/p&gt;
&lt;p&gt;The onefile DLL mode as used on Windows is finally perfect and should
have no issues anymore, while enabling big future improvements.&lt;/p&gt;
&lt;p&gt;Unfortunately 3.14 support is not yet ready and will have to be delayed
until the next release.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://nuitka.net/posts/nuitka-release-40.html"/>
    <summary>This is to inform you about the new stable release of Nuitka. It is the extremely compatible Python compiler,
“download now”.</summary>
    <category term="Nuitka" label="Nuitka"/>
    <category term="Python" label="Python"/>
    <category term="compiler" label="compiler"/>
    <published>2026-04-22T19:03:00+02:00</published>
  </entry>
</feed>
