Nuitka Release 0.3.14
This is to inform you about the new stable release of Nuitka. It is the extremely compatible Python compiler, “download now”.
This is to inform you about the new stable release of Nuitka. This time it contains mostly organisational improvements, some bug fixes, improved compatibility and cleanups.
It is again the result of working towards compilation of a real program
(Mercurial). This time, I have added support for proper handling of
compiled types by the inspect
module.
Bug fixes
Fix for “Missing checks in parameter parsing with star list, star dict and positional arguments”. There was whole in the checks for argument counts, now the correct error is given. Fixed in 0.3.13a already.
The simple slice operations with 2 values, not extended with 3 values, were not applying the correct order for evaluation. Fixed in 0.3.13a already.
The simple slice operations couldn’t handle
None
as the value for lower or upper index. Fixed in 0.3.11a already.The in-place simple slice operations evaluated the slice index expressions twice, which could cause problems if they had side effects. Fixed in 0.3.11a already.
New Features
Run time patching the
inspect
module so it accepts compiled functions, compiled methods, and compiled generator objects. Thetest_inspect
test of CPython is nearly working unchanged with this.The generator functions didn’t have
CO_GENERATOR
set in their code object, setting it made compatible with CPython in this regard too. The inspect module will therefore return correct value forinspect.isgeneratorfunction()
too.
Optimization
Slice indexes that are
None
are now constant propagated as well.Slightly more efficient code generation for dual star arg functions, removing useless checks.
Cleanups
Moved the Scons, static C++ files, and assembler files to new package
nuitka.build
where also nowSconsInterface
module lives.Moved the Qt dialog files to
nuitka.gui
Moved the “unfreezer” code to its own static C++ file.
Some PyLint cleanups.
New Tests
New test
Recursion
to cover recursive functions.New test
Inspection
to cover the patching ofinspect
module.Cover
execfile
on the class level as well inExecEval
test.Cover evaluation order of simple slices in
OrderCheck
too.
Organisational
There is a new issue tracker available (since migrated and removed)
Please register and report issues you encounter with Nuitka. I have put all the known issues there and started to use it recently. It’s Roundup based like https://bugs.python.org is, so people will find it familiar.
The
setup.py
is now apparently functional. The source releases for download are made it with, and it appears the binary distributions work too. We may now build a windows installer. It’s currently in testing, we will make it available when finished.
Summary
The new source organisation makes packaging Nuitka really easy now. From here, we can likely provide “binary” package of Nuitka soon. A windows installer will be nice.
The patching of inspect
works wonders for compatibility for those
programs that insist on checking types, instead of doing duck typing.
The function call problem, was an issue found by the Mercurial test
suite.
For the “hg.exe” to pass all of its test suite, more work may be needed, this is the overall goal I am currently striving for. Once real world programs like Mercurial work, we can use these as more meaningful benchmarks and resume work on optimization.