Nuitka Release 0.5.4
This is to inform you about the new stable release of Nuitka. It is the extremely compatible Python compiler, “download now”.
This release is aiming at preparatory changes to enable optimization based on SSA analysis, introducing a variable registry, so that variables no longer trace their references to themselves.
Otherwise, MinGW64 support has been added, and lots of bug fixes were made to improve the compatibility.
Optimization
Using new variable registry, now properly detecting actual need for sharing variables. Optimization may discover that it is unnecessary to share a variable, and then it no longer is. This also allows
--debugwithout it reporting unused variable warnings on Python3.Scons startup has been accelerated, removing scans for unused tools, and avoiding making more than one gcc version check.
Bug Fixes
Compatibility: In case of unknown encodings, Nuitka was not giving the name of the problematic encoding in the error message. Fixed in 0.5.3.3 already.
Submodules with the same name as built-in modules were wrongly shadowed. Fixed in 0.5.3.2 already.
Python3: Added implementations of
is_packageto the meta path based loader.Python3.4: Added
find_specimplementation to the meta path based loader for increased compatibility.Python3: Corrections for
--debugto work with Python3 and MSVC compiler more often.Fixed crash with
--show-sconswhen no compiler was found. Fixed in 0.5.3.5 already.Standalone: Need to blacklist
lib2to3from standard library as well. Fixed in 0.5.3.4 already.Python3: Adapted to changes in
SyntaxErroron newer Python releases, there is now amsgthat can overridereason.Standalone Windows: Preserve
sys.executableas it might be used to fork binaries.Windows: The caching of Scons was not arch specific, and files could be used again, even if changing the arch from
x86tox86_64or back.Windows: On 32 bit Python it can happen that with large number of generators running concurrently (>1500), one cannot be started anymore. Raising an
MemoryErrornow.
Organisational
Added support for MinGW64. Currently needs to be run with
PATHenvironment properly set up.Updated internal version of Scons to 2.3.2, which breaks support for VS 2008, but adds support for VS 2013 and VS 2012. The VS 2013 is now the recommended compiler.
Added RPM package and repository for RHEL 7.
The output of
--show-sconsnow includes the used compiler, including the MSVC version.Added option
--msvcto select the MSVC compiler version to use, which overrides automatic selection of the latest.Added option
-python-flag=no_warningsto disable user and deprecation warnings at run time.Repository for Ubuntu Raring was removed, no more supported by Ubuntu.
Cleanups
Made technical and logical sharing decisions separate functions and implement them in a dedicated variable registry.
The Scons file has seen a major cleanup.
Summary
This release is mostly a maintenance release. The Scons integrations has been heavily visited, as has been Python3 and esp. Python3.4 compatibility, and results from the now possible debug test runs.
Standalone should be even more practical now, and MinGW64 is an option for those cases, where MSVC is too slow.