Dostępna jest wersja projektu Nuitka 1.1, rozwijająca kompilator do tłumaczenia skryptów Pythona na reprezentację C, którą można następnie skompilować do pliku wykonywalnego przy użyciu libpython w celu uzyskania maksymalnej zgodności z CPython (przy użyciu natywnych narzędzi CPython do manipulowania obiektami). Zapewniono pełną kompatybilność z aktualnymi wersjami Pythona 2.6, 2.7, 3.3 - 3.10. W porównaniu z CPythonem skompilowane skrypty wykazują 335% poprawę wydajności w testach pystone. Kod projektu jest dystrybuowany na licencji Apache.
Wśród zmian w nowej wersji:
- Rozszerzono możliwości określania konfiguracji w formacie Yaml.
- Dokonano optymalizacji związanych z wykluczeniem nieużywanych komponentów standardowej biblioteki (zoneinfo, concurrent, asyncio itp.), co pozwoliło zmniejszyć rozmiar powstałych plików wykonywalnych.
- Dodano obsługę alternatywnej składni („|”) w dopasowaniach wzorców w oparciu o operator „match” wprowadzony w Pythonie 3.10.
- Zapewniona jest kompatybilność z jinja2.PackageLoader.
- Zaimplementowano możliwość zmiany rozmiaru atrybutu __defaults__.
- Dodano obsługę funkcji importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata i importlib_metadata.metadata.
- Do trybu kompilacji Onefile dodano obsługę dołączania dodatkowych plików binarnych do głównego pliku wykonywalnego.
- Skompilowane moduły implementują możliwość wykorzystania funkcji importlib.resources.files.
- Opcja „--include-package-data” umożliwia określenie masek plików, na przykład „--include-package-data=nazwa_pakietu=*.txt”.
- W systemie macOS zaimplementowano obsługę cyfrowego podpisywania plików wykonywalnych.
- Dla wtyczek dostępna jest metoda zastępowania funkcji pliku wykonywalnego.
- Rozszerzono możliwości wtyczki zapobiegającej wzdęciom, która może teraz zostać wykorzystana do zmniejszenia liczby pakietów podczas korzystania z bibliotek rich, pyrect i pytorch. Zaimplementowano możliwość stosowania wyrażeń regularnych w regułach zastępowania.
- Naprawiono regresywne zmiany wynikające ze znaczących optymalizacji wprowadzonych w ostatniej wersji.
Źródło: opennet.ru