Release of Nuitka 1.1, a compiler for the Python language

A release of the Nuitka 1.1 project is available, developing a compiler for translating Python scripts into a C representation, which can then be compiled into an executable file using libpython for maximum compatibility with CPython (using native CPython tools for manipulating objects). Provided full compatibility with current releases of Python 2.6, 2.7, 3.3 - 3.10. Compared to CPython, compiled scripts show a 335% performance improvement in pystone tests. The project code is distributed under the Apache license.

Among the changes in the new version:

  • Enhanced options for setting configuration in Yaml format.
  • Optimizations related to the exclusion of unused components of the standard library (zoneinfo, concurrent, asyncio, etc.) have been made, which made it possible to reduce the size of the resulting executable files.
  • Added support for alternate syntax ("|") in pattern matching based on the "match" operator introduced in the Python 3.10 branch.
  • Ensured compatibility with jinja2.PackageLoader.
  • Implemented the ability to change the size of the __defaults__ attribute.
  • Added support for importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata and importlib_metadata.metadata functions.
  • Support for including additional binaries in the main executable has been added to Onefile compilation mode.
  • Compiled modules implement the ability to use the importlib.resources.files function.
  • The "--include-package-data" option allows specifying file masks, for example, "--include-package-data=package_name=*.txt".
  • For macOS, support for digitally signing executable files has been implemented.
  • For plugins, a method is provided to override functions for an executable.
  • The anti-bloat plugin has been extended, which can now be used to reduce the number of packages when using the rich, pyrect and pytorch libraries. Implemented the ability to use regular expressions in replacement rules.
  • Fixed regressive changes resulting from significant optimizations implemented in the last release.

Source: opennet.ru

Add a comment