Nuitka Release 0.6.16
This release is mostly polishing and new features. Optimization looked only at threading performance, and LTO improvements on Windows.
pkg-resourcesfailed to resolve versions for
importlib.metadatafrom its standard library at compile time. Fixed in 0.6.15.1 already.
--include-modulewas not including the module if it was an extension modules, but only for Python modules. Fixed in 0.6.15.1 already.
Standalone: Added missing implicit dependencies for
gi.overrides. Fixed in 0.6.15.1 already.
Python3.9: Fix, could crash when using generic aliases in certain configurations. Fixed in 0.6.15.2 already.
Fix, the tensorflow plugin needed an update due to changed API. Fixed in 0.6.15.3 already.
When error exiting Nuitka, it now closes any open progress bar for cleaner display.
Standalone: Added missing dependency for
numpyplugin now automatically includes Qt backend if any of the Qt binding plugins is active.
Python3.5+: Added support for onefile compression. This is using
zstdwhich is known to give very good compression with very high decompression, much better than e.g.
macOS: Added onefile support.
FreeBSD: Added onefile support.
Linux: Added method to use tempdir onefile support as used on other platforms as an alternative to
Added support for recursive addition of files from directories with patterns.
Attaching the payload to onefile now has a progress bar too.
Windows: Prelimary support for the yet unfinished Nuitka-Python that allows static linking and higher performance on Windows, esp. with Nuitka.
Windows: In acceleration mode, for uninstalled Python, now a CMD file is created rather than copying the DLL to the binary directory. That avoids conflicts with architectures and of course useless file copies.
New abilities for plugin
anti-bloatallow to make it an error when certain modules are imported. Added more specific options for usual trouble makes, esp.
pytestare causing an explosion for some programs, while being unused code. This makes it now easier to oversee this.
It’s now possible to override
appdirsdecision for where cache files live with an environment variable
-ooption now also works with onefile mode, it previously rejected anything but acceleration mode. Fixed in 0.6.15.3 already.
Plugins: It’s now possible for multiple plugins to provide pre or post load code for the same module.
Added indications for compilation modes
Plugins: Give nicer error message in case of colliding command line options.
Faster threading code is now using for Python3.8 or higher and not only 3.9, giving a performance boost, esp. on Windows.
--ltois now the default with MSVC 2019 or higher. This will given smaller and faster binaries. It has been available for some time, but not been the default yet.
Using different progress bar titles for C compilation of Python code and C compilation of onefile bootstrap.
Moved platform specific detections, for FreeBSD/OpenBSD/macOS out of the Scons file and to common Nuitka code, sometimes eliminating duplications with one version being more correct than the other.
Massive cleanup of datafile plugin, using pattern descriptions, so more code duplication can be removed.
More cleanup of the scons files, sharing more common code.
Under the name Nuitka-Python we are now also developing a fork of CPython with enhancements, you can follow and joint it at https://github.com/Nuitka/Nuitka-Python but at this time it is not yet ready for prime time.
Onefile under Windows now only is temporary file mode. Until we figure out how to solve the problems with locking and caching, the mode where it installs to the AppData of the user is no longer available.
Renamed the plugin responsible for PyQt5 support to match the names of others. Note however, that at this time, PySide2 or PySide6 are to be recommended.
Make it clear that PySide 6.1.2 is actually going to be the supported version of PySide6.
Use MSVC in GitHub actions.
This release had a massive focus on expanding existing features, esp.
for onefile, and plugins API, such that we can now configure
anti-bloat with yaml, have really nice datafile handling options,
and have onefile on all OSes practically.