Upcoming Release 2.9
Upcoming Release 2.9
This document outlines the changes and ongoing development for the upcoming Nuitka 2.9, serving as a draft changelog. It also includes details on hot-fixes applied to the current stable release, 2.8.1. Note These are the draft release notes for Nuitka 2.9. A primary goal for this version is to deliver significant enhancements in scalability. Development is ongoing, and this documentation might lag slightly behind the latest code changes. Standalone: For the “Python Build Standalone” flavor ensured that debug builds correctly recognize all their specific built-in modules, preventing potential errors. (Fixed in 2.7.2 already.) Linux: Fixed a crash when attempting to modify the RPATH of statically linked executables (e.g., from Anaconda: Updated macOS: Corrected handling of Debugging: Resolved an issue in debug builds where an incorrect assertion was done during the addition of distribution metadata. (Fixed in 2.7.1 already.) Module: Corrected an issue preventing UI: Prevented Nuitka from crashing when Module: Addressed a compatibility issue where the Standalone: Resolved an assertion error that could occur in certain Python setups due to extension module suffix ordering. The issue involved incorrect calculation of the derived module name when the wrong suffix was applied (e.g., using Python 3.12.0: Corrected the usage of an internal structure identifier that is only available in Python 3.12.1 and later versions. (Fixed in 2.7.1 already.) Plugins: Prevented crashes in Python setups where importing macOS: Implemented a workaround for data file names that previously could not be signed within app bundles. The attempt in release 2.7 to sign these files inadvertently caused a regression for cases involving illegal filenames. (Fixed in 2.7.1 already.) Python 2.6: Addressed an issue where Corrected behavior for Python 2.6: Ensured compatibility for setups where the Python 2.6: Resolved an issue caused by the absence of Module: Corrected the Plugins: Further improved the Windows: For onefile mode using DLL mode, ensure all necessary environment variables are correctly set for PySide6: Fixed an issue with Plugins: Enhanced Qt binding plugin support by checking for module presence without strictly requiring metadata. This improves compatibility with environments like Homebrew or macOS: Ensured the macOS: Disabled the use of static macOS: Improved error handling for the Plugins: Enhanced workarounds for Plugins: Ensured that the Qt binding module is included when using accelerated mode with Qt bindings. (Fixed in 2.7.4 already.) macOS: Avoided signing through symlinks and minimized their use to prevent potential issues, especially during code signing of application bundles. (Fixed in 2.7.4 already.) Windows: Implemented path shortening for paths used in onefile DLL mode to prevent issues with long or Unicode paths. This also benefits module mode. (Fixed in 2.7.4 already.) UI: The options nanny plugin no longer uses a deprecated option for macOS app bundles, preventing potential warnings or issues. (Fixed in 2.7.4 already.) Plugins: Ensured the correct macOS target architecture is used. This particularly useful for UI: Fixed a crash that occurred on macOS if the UI: Improved the warning message related to macOS application icons for better clarity. (Added in 2.7.4 already.) Standalone: Corrected an issue with QML plugins on macOS when using newer Python 3.10+: Fixed a memory leak where the matched value in pattern matching constructs was not being released. (Fixed in 2.7.4 already.) Python3: Fixed an issue where exception exits for larger Windows: Corrected an issue with the automatic use of icons for Onefile: When using DLL mode there was a load error for the DLL with MSVC 14.2 or earlier, but older MSVC is to be supported. (Fixed in 2.7.5 already.) Onefile: Fix, the splash screen was showing in DLL mode twice or more; these extra copies couldn’t be stopped. (Fixed in 2.7.5 already.) Standalone: Fixed an issue where data files were no longer checked for conflicts with included DLLs. The order of data file and DLL copying was restored, and macOS app signing was made a separate step to remove the order dependency. (Fixed in 2.7.6 already.) macOS: Corrected our workaround using symlinks for files that cannot be signed. When UI: Prevented checks on onefile target specifications when not actually compiling in onefile mode, e.g. on macOS with UI: Improved error messages for data directory options by include the relevant part in the output. (Fixed in 2.7.6 already.) Plugins: Suppressed Python3.11+: Fixed an issue where descriptors for compiled methods were incorrectly exposed for Python 3.11 and 3.12. (Fixed in 2.7.7 already.) Plugins: Avoided loading modules when checking for data file existence. This prevents unnecessary module loading and potential crashes in broken installations. (Fixed in 2.7.9 already.) Plugins: The Onefile: The Compatibility: Fixed a crash that occurred when an import attempted to go outside its package boundaries. (Fixed in 2.7.11 already.) macOS: Ignored a warning from Onefile: Fixed an issue in DLL mode where environment variables from other onefile processes (related to temporary paths and process IDs) were not being ignored, which could lead to conflicts. (Fixed in 2.7.12 already.) Compatibility: Fixed a potential crash that could occur when processing an empty code body. (Fixed in 2.7.13 already.) Plugins: Ensured that DLL directories created by plugins could be at the top level when necessary, improving flexibility. (Fixed in 2.7.13 already.) Onefile: On Windows, corrected an issue in DLL mode where macOS: Avoided a warning that appeared on newer macOS versions. (Fixed in 2.7.13 already.) macOS: Allowed another DLL to be missing for Standalone: Corrected the existing import workaround for Python 3.12 that was incorrectly renaming existing modules of matching names into sub-modules of the currently imported module. (Fixed in 2.7.14 already.) Standalone: On Windows, ensured that the DLL search path correctly uses the proper DLL directory. (Fixed in 2.7.14 already.) Python 3.5+: Fixed a memory leak where the called object could be leaked in calls with keyword arguments following a star dict argument. (Fixed in 2.7.14 already.) Python 3.13: Fixed an issue where Onefile: Corrected an issue where the process ID (PID) was not set in a timely manner, which could affect onefile operations. (Fixed in 2.7.14 already.) Compatibility: Fixed a crash that could occur when a function with both a star-list argument and keyword-only arguments was called without any arguments. (Fixed in 2.7.16 already.) Standalone: Corrected an issue where distribution names were not checked case-insensitively, which could lead to metadata not being included. (Fixed in 2.7.16 already.) Linux: Avoid using full zlib with extern declarations but instead only the CRC32 functions we need. Otherwise conflicts with OS headers could occur. Standalone: Fix, scanning for standard library dependencies should not be necessary We now ignore doing it for standard library for all flavors; previously, we only had it for Anaconda. Plugins: Make run time query code robust against modules output in stdout during import This affected at least Windows: Do not attach when running in DLL mode. For onefile with DLL mode, this was unnecessary since the bootstrap already does it, and for pure DLL mode it’s not desired. Onefile: No need to monitor the parent process in onefile DLL mode, as there is no child process launched. Anaconda: Determine version and project name for conda packages more reliably It seems Anaconda is giving variables in package metadata and often no project name, so we derive it from the conda files and its meta data in those cases. macOS: Make sure the SSL certificates are found when downloading on macOS. Windows: Fix, console mode Scons: Fix, need to only use Compatibility: Fix, need to avoid using filenames with more than 250 chars for long module names. For cache files, const files, and C files, we need to make sure, we don’t exceed the 255 char limits per path element that literally every OS has. Also enhanced the check code for legal paths to cover this, so user options are covered from this errors too. Moved file hashing to file operations where it makes more sense to allow module names to use hashing to provide a legal filename for themselves. Compatibility: Fix, walking included compiled packages through the Nuitka loader could produce false names in some cases. Windows: Fix, for when checking Debugging: Fix, the segfault non-deployment handler needs to disable itself before doing anything else. Plugins: Fix, the warning to choose a GUI plugin for Distutils: Fix, do not recreate the build folder with a We were re-creating it as soon as we looked at what it would be, now it’s created only when asking for that to happen. No-GIL: More changes for dictionaries needed Fix compile errors for the free-threaded dictionary implementation were needed after a hotfix for 2.7 broke it. Compatibility: Fix 3.12 generic classes and generic type declarations. macOS: Fix, entitlements were not properly given for code signing Onefile: Fix, delayed shutdown for terminal applications in onefile DLL mode. Was waiting for non-used child processes, which don’t exist and then the timeout for that operation, which is always happening on CTRL-C or terminal shutdown. Python3.13: Fix, seems interpreter frames with None code objects exist and need to be handled as well. Standalone: Fix, need to allow for Windows: Avoid using non-encodable dist and build folder names Some paths don’t become short, but still be non-encodable from the file system for tools. In these cases, use temporary filenames to avoid errors from C compilers and other tools. Python3.13: Fix, ignore stdlib The module was removed during development, and if you install over an old alpha version of 3.13 a newer Python, Nuitka would crash on it. macOS: Need to allow macOS: Need to allow libraries for Onefile: Need to allow Standalone: Introduced support for the Standalone: Extended support to include Standalone: Added needed data files for Standalone: Added support for newer versions of the Standalone: Extended Standalone: Added necessary data files for the Standalone: Included GL backends for the Standalone: Added more data directories for the Standalone: Added support for newer Standalone: Added support for the macOS: Added Standalone: Added support for the Standalone: Added support for the Windows: Added support for the macOS: Enhanced configuration for the Standalone: Added support for newer Standalone: Added support for older Standalone: Added support for newer Standalone: Added support for the Standalone: Added support for newer versions of the Standalone: Added support for newer versions of the Standalone: Added support for newer versions of the Standalone: Added support for older versions of the Standalone: Added initial support for the Standalone: Ensured all necessary DLLs for the Standalone: Added support for newer versions of the Standalone: Added missing dependencies for the Standalone: Added support for newer versions of the Standalone: Added support for newer versions of the Standalone: Added support for the Standalone: Added support for the Standalone: Added a missing data file for the Standalone: Added missing data files for the Standalone: Added support for the Standalone: Added support for the Standalone: Added support for newer versions of the Standalone: Added support for newer versions of the Standalone: Added missing data files for the Standalone: Avoid including debug binary on non-Windows for Qt Webkit. Standalone: Add dependencies for pymediainfo package. Standalone: Added support for the Standalone: Added support for newer versions of the Standalone: Added support for newer versions of the Standalone: Added support for the Standalone: Added support for newer versions of the Standalone: Added data files for Standalone: Added support for Standalone: Added support newer “vtk” package Python3.14: Added experimental support for Python3.14, not recommended for use yet, as this is very fresh and might be missing a lot of fixes. Release: Added an extra dependency group for the Nuitka build-backend, intended for use in For release we also added macOS: Added options Windows: Detect when Plugins: Introduced Reports: For Python 3.13+, the compilation report now includes information on GIL usage. (Added in 2.7.7 already.) macOS: Added an option to prevent an application from running in multiple instances. (Added in 2.7.7 already.) AIX: Added support for this OS as well, now standalone and module mode work there too. Scons: When C a compilation fails to due warnings in Non-Deployment: Added non-deployment handler to catch modules that error exit on import, while assumed to work perfectly. This will give people an indication that the Non-Deployment: Added non-deployment handler for UI: Make This now works with standalone mode too, and is no longer onefile specific, the name should reflect that and people can now use it more broadly. Plugins: Added support for multiple warnings of the same kind. The Plugins: Added detector for the Standalone: Add support for including Visual Code runtime dlls on Windows When MSVC (Visual Studio) is installed, we take the runtime DLLs from its folders. We couldn’t take the ones from the Gives a warning when these DLLs would be needed, but were not found. We might want to add an option later to exclude them again, for size purposes, but correctness out of the box is more important for now. UI: Make sure the distribution name is correct for Plugins: Added support for configuring re-compilation of extension modules from their source code. When we have both Python code and an extension module, we only had a global option available on the command line. This adds For Reports: Include environment flags for C compiler and linker picked up for the compilation. Sometimes these cause compilation errors that and this will reveal there presence. Enhanced detection of This improvement prevents Nuitka from crashing during code generation when encountering syntactically valid but semantically incorrect code, such as With unknown locals dictionary variables trust very hard values there too. With this using hard import names also optimize inside of classes. This makes macOS: Enhanced Scons: Added support for C23 embedding of the constants blob with ClangCL too avoiding the use of resources. Since the onefile bootstrap doesn’t yet honor this for its payload, this is still not complete but could help with size limitations in the future. Plugins: Overhaul of the UPX plugin. Use better compression than before, hint the user at disabling onefile compression where applicable to avoid double compression. Output warnings for files that are not considered compressible. Check for Scons: Avoid compiling Improved handling of the Avoid Reduced compiled size by avoiding the use of “docutils” within the Avoid including the testing framework from the Avoid including Avoid including Avoid including Avoid including the Avoid a bloat warning for an optional import in the Avoid compiling generated Avoid including Refined Avoid compiling the Avoid using Avoid false bloat warning in Avoid using Avoid using Avoid using Avoid including Avoid using UI: Remove obsolete options to control the compilation mode from help output. We are keeping them only to not break existing workflows, but Python3.13.4: Reject broken CPython official release for Windows. The link library included is not the one needed for GIL, and as such it breaks Nuitka heavily and must be errored out on, all smaller or larger micro versions work, but this one does not. Release: Do not use Nuitka 2.7.9 as it broke data file access via Release: Ensured proper handling of newer UI: Sort Visual Code: Added Python2.6 config for Win32 to use for comparisons, still checking things there a lot. UI: List available Qt plugin families if UI: Warn about compiling a file named UI: Make it an error to compile a file named Debugging: Also find files for Debugging: Make the Quality: Avoid writing auto-formatted files with same contents That avoids stirring up tools that listen to changes. For example the Nuitka website auto-builder otherwise rebuilt per release post on docs update. Quality: Use latest version of Quality: Added autoformat for JSON files. Release: The man pages were using outdated options and had no example for standalone or app modes. Also the actual options were no longer included. GitHub: Use the GitHub: Enhanced wordings for bug report template to give more directions and more space for excellent reports to be made. GitHub: Also ask for output of our own package metadata listing tool as it contains more information about Nuitka seeing things. Debugging: Don’t disable all warnings with Clang, this has went unnoticed for a long time and prevented a few things from being recognized. Debugging: Support arbitrary debuggers through –debugger-choice. Support arbitrary debuggers for use in the Also added predefined UI: Added rich as a progress bar that can be used. Since it’s available in pip these days, it can be found most likely and needs no inline copy. Add colors and similar behavior for UI: Remove obsolete warning for Linux with We don’t use UI: Add warnings for module specific options too. The logic to not warn on GitHub Actions was inverted, this restores warnings for normal users. UI: Output the module name in question for UI: When a forbidden import comes from an implicit import, report that properly. Sometimes UI: More clear error message in case a Python for scons was not found. Actions: Cover debug mode compilation at least once. Quality: Resolve paths from all OSes in Actions: Use newer Ubuntu for testing, otherwise we weren’t able to get Debugging: Allow for C stack output in signal handlers, this is most useful when doing the non-deployment handler that catches them to know where they came from more precisely. UI: Show no-GIL in output of Python flavor in compilation if relevant. Removed Azure CI configuration, as testing has been fully migrated to GitHub Actions. (Changed in 2.7.9 already.) Improved test robustness against short paths for package-containing directories. (Added in 2.7.4 already.) Prevented test failures caused by rejected download prompts during test execution, making CI more stable. (Added in 2.7.4 already.) Refactored common testing code to avoid using Tests: Cover the memory leaking call re-formulation with a reference count test. Plugins: Improved Improved the logging mechanism for module search scans. It is now possible to enable tracing for individual Scons: Refactored architecture specific options into dedicated functions to keep the code more clear. Spelling: Cleanups Avoid using Added missing slot function names to the ignored word list. Renamed variables related to slots to be more verbose and proper spelling as a result, as that’s for better understanding of their use anyway. Scons: Specify versions supported for Scons by excluding the ones that are not rather than manually maintaining a list. This adds support for using Python 3.14 automatically. Plugins: Remove useless use of Attach copyright during code generation for code specializations This also enhances the formatting for almost all files by making leading and trailing new lines more consistent. One C file turns out unused and was removed as a left over from a previous refactoring. This release is currently under active development and is not yet feature-complete.Nuitka Release 2.9 (Draft)
Bug Fixes
imageio-ffmpeg
). (Fixed in 2.7.2 already.)PySide2
support to correctly handle path changes in newer Conda packages and improved path normalization for robustness. (Fixed in 2.7.2 already.)QtWebKit
framework resources. Previous special handling was removed as symlinking is now default, which also resolved an issue of file duplication. (Fixed in 2.7.2 already.)stubgen
from functioning with Python versions earlier than 3.6. (Fixed in 2.7.1 already.)--include-module
was used with a built-in module. (Fixed in 2.7.1 already.)code
mode for the constants blob failed with the C++ fallback. This fallback is utilized on very old GCC versions (e.g., default on CentOS7), which are generally not recommended. (Fixed in 2.7.1 already.).so
to derive a module name like gdbmmodule
instead of just gdbm
). This was observed with Python 2 on CentOS7 but could potentially affect other versions with unconventional extension module configurations. (Fixed in 2.7.1 already.)pkg_resources
results in a PermissionError
. This typically occurs in broken installations, for instance, where some packages are installed with root privileges. (Fixed in 2.7.1 already.)staticmethod
objects lacked the __func__
attribute. Nuitka now tracks the original function as a distinct value. (Fixed in 2.7.1 already.)orderedset
implementations that lack a union
method, ensuring Nuitka does not attempt to use it. (Fixed in 2.7.1 already.)_PyObject_GC_IS_TRACKED
macro is unavailable. This macro is now used beyond assertions, necessitating support outside of debug mode. (Fixed in 2.7.1 already.)sys.version_info.releaselevel
by utilizing a numeric index instead and adding a new helper function to access it. (Fixed in 2.7.1 already.)__compiled__.main
value to accurately reflects the package in which a module is loaded, this was not the case for Python versions prior to 3.12. (Fixed in 2.7.1 already.)dill-compat
plugin by preventing assertions related to empty annotations and by removing hard-coded module names for greater flexibility. (Fixed in 2.7.1 already.)QtWebEngine
. Previously, default Qt paths could point incorrectly near the onefile binary. (Fixed in 2.7.3 already.)PySide6
where slots defined in base classes might not be correctly handled, leading to them only working for the first class that used them. (Fixed in 2.7.3 already.)uv
where package metadata might be absent. (Fixed in 2.7.3 already.)apple
target is specified during linking to prevent potential linker warnings about using an unknown
target in certain configurations. (Fixed in 2.7.3 already.)libpython
with pyenv
installations, as this configuration is currently broken. (Fixed in 2.7.3 already.)--macos-app-protected-resource
option by catching cases where a description is not provided. (Fixed in 2.7.3 already.)PySide6
, now also covering single-shot timer callbacks. (Fixed in 2.7.4 already.)PySide2
with universal CPython binaries, to prevent compile time crashes e.g. when cross-compiling for a different architecture. (Fixed in 2.7.4 already.)ccache
download was rejected by the user. (Fixed in 2.7.4 already.)PySide6
versions. (Fixed in 2.7.4 already.)range
objects, which are not optimized away, were not correctly annotated by the compiler. (Fixed in 2.7.4 already.)PySide6
applications on non-Windows if Windows icon options were used. (Fixed in 2.7.4 already.)--output-directory
was used, as it made incorrect assumptions about the dist
folder path. (Fixed in 2.7.6 already.)--mode=app
. (Fixed in 2.7.6 already.)UserWarning
messages from the pkg_resources
module during compilation. (Fixed in 2.7.6 already.)global_change_function
anti-bloat feature now operates on what should be the qualified names (__qualname__
) instead of just function names, preventing incorrect replacements of methods with the same name in different classes. (Fixed in 2.7.9 already.)containing_dir
attribute of the __compiled__
object was regressed in DLL mode on Windows, pointing to the temporary DLL directory instead of the directory containing the onefile binary. (Fixed in 2.7.10 already, note that the solution in 2.7.9 had a regression.)codesign
when using self-signed certificates. (Fixed in 2.7.11 already.)original_argv0
was None
; it is now properly set. (Fixed in 2.7.13 already.)PySide6
to support more setups. (Fixed in 2.7.13 already.)PyState_FindModule
was not working correctly with extension modules due to sub-interpreter changes. (Fixed in 2.7.14 already.)toga
giving some warnings on Windows with mere stdout prints. We now have a marker for the start of our output that we look for and safely ignore them.attach
was not working in onefile DLL mode.pragma
with clang
as older gcc
can give warnings about them. This fixes building on older OSes with the system gcc.stderr
during launch and it being None
, this make wrong method calls on that object.matplotlib
was given with tk-inter
plugin enabled still, which is of course not appropriate..gitignore
file.setuptools
package to be user provided.cgi
module that might be left over from previous installslib
folder for Python Build Standalone flavor.rpath
resolution to be found in all Homebrew folders and not just lib
...
in paths to allow outside installation paths.Package Support
nicegui
package. (Added in 2.7.1 already.)xgboost.core
on macOS. (Added in 2.7.1 already.)ursina
package. (Added in 2.7.1 already.)pydantic
package. (Added in 2.7.4 already.)libonnxruntime
support to macOS, enabling its use in compiled applications on this platform. (Added in 2.7.4 already.)pygameextra
package. (Added in 2.7.4 already.)arcade
package. (Added in 2.7.4 already.)ursina
and panda3d
packages, improving their out-of-the-box compatibility. (Added in 2.7.4 already.)skimage
package. (Added in 2.7.5 already.)PyTaskbar
package. (Added in 2.7.6 already.)tk-inter
support for Python 3.13 with official CPython builds, which now use framework files for Tcl/Tk. (Added in 2.7.6 already.)paddlex
package. (Added in 2.7.6 already.)jinxed
package, which dynamically loads terminal information. (Added in 2.7.6 already.)ansicon
package by including a missing DLL. (Added in 2.7.6 already.)pypylon
package, however, it’s not sufficient. (Added in 2.7.6 already.)numpy
versions. (Added in 2.7.7 already.)vtk
package. (Added in 2.7.8 already.)certifi
versions that use importlib.resources
. (Added in 2.7.9 already.)reportlab.graphics.barcode
module. (Added in 2.7.9 already.)transformers
package. (Added in 2.7.11 already.)sklearn
package. (Added in 2.7.12 already.)scipy
package. (Added in 2.7.12 already.)cv2
package (specifically version 4.4). (Added in 2.7.12 already.)vllm
package. (Added in 2.7.12 already.)pygame
package are included. (Added in 2.7.12 already.)zaber_motion
package. (Added in 2.7.13 already.)pymediainfo
package. (Added in 2.7.13 already.)sklearn
package by including a missing dependency. (Added in 2.7.13 already.)toga
package. (Added in 2.7.14 already.)wordninja-enhanced
package. (Added in 2.7.14 already.)Fast-SSIM
package. (Added in 2.7.14 already.)rfc3987_syntax
package. (Added in 2.7.14 already.)trimesh
package. (Added in 2.7.15 already.)gdsfactory
, klayout
, and kfactory
packages. (Added in 2.7.15 already.)vllm
package. (Added in 2.7.16 already.)tkinterweb
package. (Added in 2.7.15 already.)cmsis_pack_manager
package. (Added in 2.7.15 already.)idlelib
package. (Added in 2.7.15 already.)winpty
package.gi
package.litellm
package.traits
and pyface
packages.transformers
package.rasterio
package.ortools
package.New Features
pyproject.toml
and other build-system dependencies. To use it depend in Nuitka[build-wheel]
instead of Nuitka. (Added in 2.7.7 already.)Nuitka[onefile]
, Nuitka[standalone]
, Nuitka[app]
as extra dependency groups. If icon conversions are used, e.g. Nuitka[onefile,icon-conversion]
adds the necessary packages for that. If you don’t care about what’s being pulled in Nuitka[all]
can be used, by default Nuitka
only comes with the bare minimum needed and will inform about missing packages.--macos-sign-keyring-filename
and --macos-sign-keyring-password
to automatically unlock a keyring for use during signing. This is very useful for CI where no UI prompt can be used.input
cannot be used due to no console or the console not providing proper standard input and produce a dialog for entry instead. Shells like cmd.exe
execute inputs as commands entered when attaching to them. With this, the user is informed to make the input into the dialog instead. In case of no terminal, this just brings up the dialog for GUI mode.global_change_function
to the anti-bloat engine, allowing function replacements across all sub-modules of a package at once. (Added in 2.7.6 already.)--debug
mode, recognize that and provide the proper extra options to use if you want to ignore that.numpy
module is expected to work and that maybe just the newest version is not and we need to be told about it.DistributionNotFound
main program exception exits that point the user to metadata options needed.--include-data-files-external
the main option name for put data files alongside the created program.dill-compat
plugin needs that as it supports multiple packages.dill-compat
plugin that detects usages of dill
, cloudpickle
and ray.cloudpickle
.redist
packages installed to system folders legally.--include-distribution-metadata
values.--recompile-extension-modules
for more fine grained choices as it allows to specify names and patterns.zmq
, we need to enforce it to never be compiled, as it checks if it is compiled with Cython at runtime, so re-compilation is never possible.Optimization
raise
statements that use compile-time constant values which are not actual exception instances.raise NotImplemented
. While such code is erroneous, it should not cause a compiler crash. (Added in 2.7.1 already.)gcloud
metadata work, which previously wasn’t resolved in their code.PySide2
support, removing the general requirement for onefile mode. Onefile mode is now only enforced for the QtWebEngine
due to its specific stability issues if not bundled this way. (Added in 2.7.4 already.)upx
binary sooner.hacl
code for macOS where it’s not needed.Anti-Bloat
astropy
package by implementing global replacements instead of per-module ones. Similar global handling has also been applied to IPython
to reduce overhead. (Added in 2.7.1 already.)docutils
usage in the markdown2
package. (Added in 2.7.1 already.)markdown2
package. (Added in 2.7.1 already.)langsmith
package. (Added in 2.7.6 already.)setuptools
from jax.version
. (Added in 2.7.6 already.)unittest
from the reportlab
package. (Added in 2.7.6 already.)IPython
for the keras
package using a more global approach. (Added in 2.7.11 already.)triton
package when compiling transformers
. (Added in 2.7.11 already.)seaborn
package. (Added in 2.7.13 already.)google.protobuf.*_pb2
files. (Added in 2.7.7 already.)triton
and setuptools
when using the xformers
package. (Added in 2.7.16 already.)dask
support to not remove pandas.testing
when pytest
usage is allowed. (Added in 2.7.16 already.)tensorflow
module that is very slow and contains generated code.setuptools
in cupy
package.seadoc
package.dask
in sklearn
package.cupy.testing
in the cupy
package.IPython
in the roboflow
package.ray
for the vllm
package.dill
in the torch
package.Organizational
--mode=
should be used now and these options will start triggering warnings soon.__file__
in onefile mode on Windows. This is a brown paper bag release, with 2.7.10 containing only the fix for that. Sorry for the inconvenience.setuptools
versions during Nuitka installation. (Fixed in 2.7.4 already.)--list-distribution-metadata
output and remove duplicates. (Changed in 2.7.8 already.)--include-qt-plugin
cannot find one.__main__.py
which should be avoided, instead you should specify the package directory in that case.__init__.py
for standalone mode.--edit
for temporary file paths that are not short but long paths.pyside6
plugin enforce --no-debug-immortal-assumptions
when --debug
is on because PySide6 violates these and we don’t need Nuitka to check for that then as it will abort when it finds them.deepdiff
.--mode
options in the issue template as well.--debugger
mode, if you specify all of their command line you can do anything there.valgrind-memcheck
mode for memory checker tool of Valgrind to be used.tqdm
as well.upx
plugin.appimage
anymore for a while now, so its constraints do not matter.options-nanny
plugin and parameter warnings..pyi
files from extension modules cause an import, but it wasn’t clear which one, now it will be giving the module causing it.--edit
. Sometime I want to look at a file on the wrong OS still, and there is no need to enforce being on the same one for resolutions to work.clang-format
installed anymore.Tests
doctests
, preventing warnings in specific standalone mode test scenarios related to reference counting. (Added in 2.7.4 already.)Cleanups
pkg_resources
integration by using the __loader__
attribute of the registering module for loader type registration, avoiding modification of the global builtins
dictionary. (Fixed in 2.7.2 already.)locateModule
calls, significantly enhancing readability and aiding debugging efforts.#ifdef
in C code templates, and let’s just avoid it generally.intern
as it doesn’t do what I thought it does.Summary