Nuitka 2.0 has been released, introducing a compiler for Python scripts in the C language representation. This allows the scripts to be compiled into executable files using Libpython, ensuring maximum compatibility with CPYTHON. The project offers complete compatibility with Python versions 2.6, 2.7, and 3.3-3.11. Tests have shown that compiled scripts perform 335% better compared to CPython. The project’s code is licensed under Apache.
Among the changes in the new version are:
- Added the ability to use variables in the package configuration, which allows the user to request values from the set packages during compilation and use these values to determine the backend. This eliminates the need for connecting plugins to solve problems that previously required them.
- Added support for user-defined parameters to influence the configuration of each package. These parameters can be read using the new Get_Parameter function and used to select module behavior.
- Added the option “–Include-onfile-external-data” to specify files that contain data determined in the configuration but should be delivered separately from the executable file during assembly in single-file mode.
- Added the option “–cf-Protection” to set the CFI (Control Flow Integrity) mode in GCC, which blocks normal execution violations.
- For plugin YAML files, the ability to create checksums for future execution verification has been introduced.
- Actions now allow the indication of multiple options separated by lines, using a new line as a separator.
- Implemented analysis of cycle types, which will be used for selective optimizations in the future.
- Added optimization to accelerate work with unused and shielded variables.
- The Anti-Bloat plugin now offers reduced package usage when working with libraries such as Streamlit, Torch, Knetworkx, Distributed, Skimage, Bitsandbytes, TF_Keras, PIP, NETWORKX, and PyWT (main Python, Nose, Triton, and Dask).
/Reports, release notes, official announcements.