* This also enhances the formatting for almost all files by making
leading and trailing new lines more consistent.
* One C file turns out unused, was probably a left over.
* Give warning about imports not followed only when no options that
specify what to do are given.
* Make sure we pass module name around and have it in all cases.
* Import nodes now provide what they use, but they do not add detected
imports immediately to the active module set, instead wait for module
to be fully optimized, avoiding imports discarded during optimization.
* Stop working with relative paths, instead use absolute ones, getting
rid of a long standing TODO.
* This is in preparation for 3.10 which will fail to work that work.
* Extended numeric values to be hexadecimal.
* Using tuples over strings in testing.
* Also cleanup generator expression test to be pylint clean, so
Visual Code is not as upset.
* Split syntax supported until 3.7 in separate basic test and make
the 3.8 syntax error a test.
* The autoformat had been done partially in the past, but now it
is complete.
* Covering it with pylint makes sense, but required a lot of
small changes.
* Yield is now forbidden in generator expressions, so check for
that.
* And continue is now allowed in finally clauses, so allow that.
* Some of the tests were using generator expressions on the module
level to check for yields on that level, giving conflicting
results, adapted those tests.
* Always output the best syntax error format, and do away with compatible
syntax errors. Instead make the comparison restricted to the message
of error only.
* This reduces tedious code and tried to mimic the various Python versions
errors for no good reasons.
* They added a few cases where column carets should be there, we add
those for improved mode, and detect the need for them.
* This should fix build errors in tests for current Debian unstable.
* We need to include "test_common" in reference count tests, or
else it may not be found.
* Only actual syntax tests should be there, not things that raise
syntax error at run time, those are not real syntax tests. The
traceback given then depends on run time.
* Not all runners were so far using the common test code, and still some
are not yet.
* The coverage collection aims at determining the amount of coverage we
have from our tests.
* Also cleanups to how skipped tests are reported, and making sure that
we do find any test at all, when searching for a match.
* More clean way to whitelist single tests to fail comparison without it
aborting the test run.
* Now a proper search mode object is used in all cases, booleans are no
more sufficient.
* Wrong future imports are caught by the "ast" module already as
demonstrated in a new test "FutureUnknown".
* Refactored re-formulation of import statements to a dedicated
module, further reducing the complexity of "nuitka.Building".
* Make hard module imports not raise exceptions for known good
cases, "sys.stdout" and "__future__" imports.
* This should give less noise code for future imports amd print
statements, removing a useless check.
* This was not covered in a test so far, but ought to be.
* Also cleaned up which tests are run for a given Python version
to be determined from filenames as per common test code.
* The avoids running tests on Python versions where they are no
syntax errors, avoiding needless churn.
* There is a "msg" attribute to exceptions that can override the
older "reason" it seems.
* All newer CPython releases started to change the text for the
unknown encoding error.
* For Python2, the ast.parse module still gives the old text and
therefore needs to be manually treated there.
* Sadly, the name of the unknown encoding was not displayed, but
the used in test, this is fixed now.
* In improved mode, the new style error messages will be used.
* Moved these sub version specific checks to a dedicated module
that is going to host such things in the future.
* Use less C++ classes, and generate more C-like code. Temporary variables
are now used, where previously everything in a statement was wrapped in
C++ temporary objects.
* Exception handling is now pure C code, no more "throw" at all. That means
return codes are checked. This gives a huge performance increase for the
use of Python exceptions.
* Generation of tuples and lists is now done without helper functions, these
were only increasing code complexity.
* Access to local and global variables with more direct code.
* Less use of templates, more code is manually crafted.
* Moved publishing and preservation of exceptions to node tree.
* Enhanced handling of try/except and try/finally for Python3 by doing
reformulations for their handler semantics.
* Exception handling as now done via branching.
Huge simplification for SSA, as exception catching is now explicit
via normal branch analysis, removing handlers as special cases.
* Many asorted improvements.
* Many, many cleanups.
* Python3.3: Fix, packages without "__init__.py" didn't have the module
embedded.
* Tests improvement, make sure programs execute without the imported modules
accessible.
* Triggered by Issue#114 it became apparent that the programs test case won't
notice if the recursion does not work at all (which it did on develop at
some point).
* Also check the flags given to the test runner in order to detect typos.
* This is driven from running the tests concurrently via Buildbot.
* Share common code for tests in a module.
* Flush after every print, for proper ordering of output when redirected
to a file.
* Enhanced handling of CTRL-C in test running, cleaning up created files
more reliably.
* Do "2to3" conversion to temporary directory that won't collide with
multiple instances of the tests running at once.
* Generally make it possible to run multiple instances of the tests at
once.
* Avoid useless PYTHONPATH addition of current directory.
* Detect if a debug Python might be available even for Windows too.
* Warn about non-debug version used in reference count test.