Nuitka Release 0.5.20
This release is mostly about catching up with issues. Most address standalone problems with special modules, but there are also some general compatibility corrections, as well as important fixes for Python3.5 and coroutines and to improve compatibility with special Python variants like Anaconda under the Windows system.
Standalone Python3.5: The
_decimalmodule at least is using a
__name__that doesn’t match the name at load time, causing programs that use it to crash.
Compatibility: For Python3.3 the
__loader__attribute is now set in all cases, and it needs to have a
__module__attribute. This makes inspection as done by e.g.
Standalone: Added missing hidden dependencies for
Tkintermodule, adding support for this to work properly.
Windows: Detecting the Python DLL and EXE used at compile time and preserving this information use during backend compilation. This should make sure we use the proper ones, and avoids hacks for specific Python variants, enhancing the support for Anaconda, WinPython, and CPython installations.
--python-debugflag now properly detects if the run time is supporting things and error exits if it’s not available. For a CPython3.5 installation, it will switch between debug and non-debug Python binaries and DLLs.
Standalone: Added plug-in for the
Pwmpackage to properly combine it into a single file, suitable for distribution.
Standalone: Packages from standard library, e.g.
xmlnow have proper
__path__as a list and not as a string value, which breaks code of e.g. PyXML.
Standalone: Added missing dependency of
Python3.5: When finalizing coroutines that were not finished, a corruption of its reference count could happen under some circumstances.
Standalone: Added missing DLL dependency of the
uuidmodule at run time, which uses ctypes to load it.
Added support for Anaconda Python on this Linux. Both accelerated and standalone mode work now.
Added support for standalone mode on FreeBSD.
The plug-in framework was expanded with new features to allow addressing some specific issues.
Moved memory related stuff to dedicated utils package
nuitka.utils.MemoryUsageas part of an effort to have more topical modules.
Plugins how have a dedicated module through which the core accesses the API, which was partially cleaned up.
No more “early” and “late” import detections for standalone mode. We now scan everything at the start.
This release focused on expanding plugins. These were then used to enhance the success of standalone compatibility. Eventually this should lead to a finished and documented plug-in API, which will open up the Nuitka core to easier hacks and more user contribution for these topics.