Die neue Version des Projekts Nuitka 1.1 ist verfĂŒgbar. Diese Version verbessert den Compiler zur Ăbersetzung von Python-Skripten in C-Code, der dann in eine ausfĂŒhrbare Datei kompiliert werden kann, die libpython verwendet, um maximale KompatibilitĂ€t mit CPython zu gewĂ€hrleisten (unter Verwendung der Standardwerkzeuge von CPython zur Objektverwaltung). Die vollstĂ€ndige KompatibilitĂ€t mit den aktuellen Versionen von Python 2.6, 2.7, 3.3 - 3.10 wurde sichergestellt. Im Vergleich zu CPython zeigen die kompilierten Skripte in den Pystone-Tests eine Leistungssteigerung von 335 %. Der Code des Projekts wird unter der Apache-Lizenz veröffentlicht.
Zu den Ănderungen in der neuen Version gehören:
- Die Konfigurationsmöglichkeiten im Yaml-Format wurden erweitert.
- Optimierungen wurden vorgenommen, um nicht verwendete Komponenten der Standardbibliothek (wie zoneinfo, concurrent, asyncio usw.) auszuschlieĂen, was zu einer Reduzierung der GröĂe der resultierenden ausfĂŒhrbaren Dateien fĂŒhrte.
- UnterstĂŒtzung fĂŒr alternative Syntax ('|') in Pattern-Matching mit dem HinzufĂŒgen des 'match'-Operators, der in Python 3.10 eingefĂŒhrt wurde.
- KompatibilitÀt mit jinja2.PackageLoader wurde gewÀhrleistet.
- Es wurde die Möglichkeit zur GröĂenĂ€nderung des Attributs __defaults__ implementiert.
- UnterstĂŒtzung fĂŒr die Funktionen importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata und importlib_metadata.metadata wurde hinzugefĂŒgt.
- Im Modus zur Erstellung einer Datei (Onefile) wurde die UnterstĂŒtzung fĂŒr das Einbinden zusĂ€tzlicher BinĂ€rdateien in die HauptausfĂŒhrungsdatei hinzugefĂŒgt.
- In den kompilierten Modulen kann nun die Funktion importlib.resources.files verwendet werden.
- In der Option ââinclude-package-dataâ ist es jetzt erlaubt, Dateimuster anzugeben, z. B. ââinclude-package-data=package_name=*.txtâ.
- FĂŒr macOS wurde die UnterstĂŒtzung fĂŒr das Signieren von ausfĂŒhrbaren Dateien mit einer digitalen Signatur implementiert.
- FĂŒr Plugins wurde eine Methode bereitgestellt, um Funktionen fĂŒr die ausfĂŒhrbare Datei zu ĂŒberschreiben.
- Die Funktionen des Plugins anti-bloat wurden erweitert, sodass es nun zur Reduzierung der Anzahl von Paketen bei der Verwendung der Bibliotheken rich, pyrect und pytorch eingesetzt werden kann. Die Möglichkeit, regulĂ€re AusdrĂŒcke in den Ersetzungsregeln zu verwenden, wurde implementiert.
- RegressionsÀnderungen, die durch signifikante Optimierungen im vorherigen Release entstanden sind, wurden behoben.
Quelle: opennet.ru
