02 January 2015

Nuitka Release 0.5.7

This is to inform you about the new stable release of Nuitka. It is the extremely compatible Python compiler, “download now”.

This release is brings a newly supported platform, bug fixes, and again lots of cleanups.

Bug Fixes

  • Fix, creation of dictionary and set literals with non-hashable indexes did not raise an exception.

    {[]: None}  # This is now a TypeError
    

Optimization

  • Calls to the dict built-in with only keyword arguments are now optimized to mere dictionary creations. This is new for the case of non-constant arguments only of course.

    dict(a=b, c=d)
    # equivalent to
    {"a": b, "c": d}
    
  • Slice del with indexable arguments are now using optimized code that avoids Python objects too. This was already done for slice look-ups.

  • Added support for bytearray built-in.

Organisational

  • Added support for OpenBSD with fiber implementation from library, as it has no context support.

Cleanups

  • Moved slicing solutions for Python3 to the re-formulation stage. So far the slice nodes were used, but only at code generation time, there was made a distinction between Python2 and Python3 for them. Now these nodes are purely Python2 and slice objects are used universally for Python3.

Tests

  • The test runners now have common code to scan for the first file to compile, an implementation of the search mode. This will allow to introduce the ability to search for pattern matches, etc.

  • More tests are directly executable with Python3.

  • Added recurse_none mode to test comparison, making using extra options for that purpose unnecessary.

Summary

This solves long standing issues with slicing and subscript not being properly distinguished in the Nuitka code. It also contains major bug fixes that really problematic. Due to the involved nature of these fixes they are made in this new release.