This release contains a large amount of new compatibility features, while consolidating what we have. Scalability should be better in some cases.
networkx package which uses new support for a function decorator trying to copy function default values. Fixed in 1.0.1 already.pandas.io.format package. This one has Jinja2 template files that will be needed when using this package.match arguments, but the user did attempt to match them. This happened e.g. with range objects. Fixed in 1.0.2 already.pyenchant package. Fixed in 1.0.2 already.as assignments in them didn’t check for sub-pattern given. Fixed in 1.0.2 already.PATH entries on Windows, these can crash the dependency detection otherwise. Fixed in 1.0.2 already.linux-vdso.so.1 appears in output of ldd in a way that suggests it may exist, which of course it does not, this is a kernel virtual DLL. Fixed in 1.0.3 already.pyzbar package. Fixed in 1.0.5 already.zstandard without finding another Python with a suitable one, lead to run time unpacking errors. Fixed in 1.0.6 already.logging for no good reason, which lead to errors for users who have a module of the same name, that it was then using instead. Fixed in 1.0.6 already.certifi was not working on Windows and 3.10 anymore. Fixed in 1.0.7 already.rapidfuzz implicit dependencies. Fixed in 1.0.8 already.vibora. Fixed in 1.0.8 already.gcc error exit querying of its version.pyzmq package.PATH elements that fail to be listed as a directory. It appears e.g. on Windows, folders can exist, despite being unusable in fact. These can then cause errors in DLL dependency scan. Also avoid having PATH set when executing dependency walker, it appears to use it even if not asked to.tzlocal package.complex literals were not working for mappings in match statements.bool built-in expressions were not properly annotating exception raises, where the value cannot raise on truth check.agscheduler package. Plugins must be done manually still with explicit --include-module calls.shapely in Anaconda as well.libzstd should also be in package, this should restore Nuitka package builds for Debian Jessie.vtk package.pywin32 in our appdirs usage, it might be a broken installation and is optional to appdirs anyway, which then will fallback to using ctypes to make the lookups.pandas versions.mkl implicit DLL usage in Anaconda.jsonschema with Python 3.10.pyfiglet fonts data files.distributed.config.cv2 GUI on Linux, the Qt platform plugin is now included.numpy.testing tools exposed an incomplete suppress_warnings replacement that could lead to errors in some functions of numpy.torchvision.torchvision on Anaconda as well.panda3d.facenet_torch data files.libstdc++.so on Linux or else e.g. cv2 will not work with system library.match alternatives | syntax.pkg_resources such that checking resource presence with has_resource works too. This should also add support for using jinja2.PackageLoader, previously only jinja2.FileSystemLoader worked. Fixed in 1.0.1 already.__defaults__ attribute size changeable. For a long time, this was a relatively big issue for some packages, but now this is supported as well.importlib.metadata.distribution and importlib_metadata.distribution functions as well importlib.metadata.metadata and importlib_metadata.metadata functions.%PATH%.importlib.resources.files with compiled modules.
It returns traversable objects, which can be used to opens files, checks them, etc. and this e.g. allows jsonschema to work with Python 3.10, despite bugs in CPython’s compatibility layer.--include-package-data usable in many more cases, picking the only files or file types you want. You can now use --include-package-data=package_name=*.txt and select only a subset of package data files in this way. Before this, it included everything and --noinclude-data-files would have to be used.runtime signing an experimental option.when conditions for all package configuration elements, e.g. also DLLs.replacements_re code.os.path hard module imports along with specialized nodes for file tests os.path.exists, os.path.isfile, and os.path.isdir aiming at tracking used files, producing warnings about missing files in the future.concurrent standard library package automatically. This avoids the inclusion of multiprocessing which we essentially had reverted during last release cycle.zoneinfo standard library package automatically. It has many data files and is often not used (yet).asyncio standard library package automatically anymore.asyncua package.pkg_resources.iter_entry_points too, such that these can be used to resolve plugin modules, which helps with adding support for agscheduler package plugins. Note that these still need to be manually included with --include-module but now that works.and or or conditions, reduce the expression as far as possible.--static-libpython work with clang on Linux as well.libpython is loaded relative to the executable. This is needed for at least Anaconda Python.rich package.doctest dependency when using pyrect.unittest removals from pytorch using libraries..cmd file created (if any) on Windows, e.g. when run in a virtualenv or for uninstalled Python versions, it will otherwise not run in accelerated mode, but previously the output suggested to run the executable directly.--include-plugin-directory which is frequently misunderstood. That option barely does what people want it to do. Point them to using the other options that are easy to use and will work.--python-for-scons so users can know ahead of time what versions are suitable.--xml accept a filename for the node tree dump, and change it so it can be executed in addition to actual compilation. This way we need not be super-robust about keeping stdout clean, to not break XML parsing.%TEMP% folder should not by itself prevent cached onefile mode, only really variable paths should. People may want to have this as some kind of temporary cache still.something/%PROGRAM% is now a mistake caught at compile time. These values can only be at the start of spec values naturally.rstfmt.clang-format from the recommended C++ extension of Visual Code, which makes it finally available on macOS easily too.pkg_resources if that is from a Debian package. Fake packages should not be mentioned for these lists though.isort trick of splitting files in two parts (mostly to setup import paths for nuitka package), make sure the second parts starts with a new line.--output-filename to specify the output filename, the short form has become barely usable after we switched to enforcing no space separation for command line arguments.FATAL error annotation, that is not justified.--windows-onefile-tempdir-spec alias of --onefile-tempdir-spec option, it is no longer Windows specific.when condition is applied for the various kinds of sections.This release is mainly a consolidation of previous release. Optimization added in previous release did in fact introduce regressions, that needed to be addressed and were cause for relatively many hotfixes.
The Yaml nuitka package configuration feature is getting ever more powerful, but is not one bit more documented, such that the community as a whole is not yet capable of adding missing dependencies, data files, DLLs, and even anti-bloat patches.
New optimization was focused around compatibility with very few exceptions, where the non-automatic standard library work is standing out, and allows for smaller binaries in many cases.
Scalability has seen improvements through a few optimization, but mainly again with anti-bloat work being done. This is owed to the fact that consolidation was the name of the game.
For Anaconda specifically, a lot more software is covered, and generally, cv2 and torch related tools are now working better, but it seems DLL handling will remain problematic in many instances.
The compilation report contains much more information and is getting there is terms of completeness. At some point, we should ask for it in bug reports.