Sortie de Nuitka 1.1, un compilateur pour le langage Python

Une version du projet Nuitka 1.1 est disponible, développant un compilateur pour traduire les scripts Python en une représentation C, qui peut ensuite être compilé dans un fichier exécutable en utilisant libpython pour une compatibilité maximale avec CPython (en utilisant des outils CPython natifs pour manipuler des objets). Fournit une compatibilité totale avec les versions actuelles de Python 2.6, 2.7, 3.3 - 3.10. Par rapport à CPython, les scripts compilés montrent une amélioration des performances de 335 % dans les tests pystone. Le code du projet est distribué sous la licence Apache.

Parmi les changements de la nouvelle version :

  • Les possibilités de spécification de configuration au format Yaml ont été étendues.
  • Des optimisations ont été apportées liées à l'exclusion des composants inutilisés de la bibliothèque standard (zoneinfo, concurrent, asyncio, etc.), ce qui a permis de réduire la taille des fichiers exécutables résultants.
  • Ajout de la prise en charge d'une syntaxe alternative ("|") dans les correspondances de modèles basées sur l'opérateur "match" introduit dans Python 3.10.
  • La compatibilité avec jinja2.PackageLoader est assurée.
  • Implémentation de la possibilité de modifier la taille de l'attribut __defaults__.
  • Ajout de la prise en charge des fonctions importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata et importlib_metadata.metadata.
  • La prise en charge de l'inclusion de fichiers binaires supplémentaires dans le fichier exécutable principal a été ajoutée au mode de compilation Onefile.
  • Les modules compilés implémentent la possibilité d'utiliser la fonction importlib.resources.files.
  • L'option "--include-package-data" permet de spécifier des masques de fichiers, par exemple "--include-package-data=package_name=*.txt".
  • Pour macOS, la prise en charge de la signature numérique des fichiers exécutables a été implémentée.
  • Une méthode est fournie pour que les plugins remplacent les fonctions de l'exécutable.
  • Les capacités du plugin anti-ballonnement ont été étendues, qui peuvent désormais être utilisées pour réduire le nombre de packages lors de l'utilisation des bibliothèques riches, pyrect et pytorch. La possibilité d'utiliser des expressions régulières dans les règles de remplacement a été implémentée.
  • Les changements régressifs résultant d'optimisations importantes mises en œuvre dans la dernière version ont été résolus.

Source: opennet.ru

Ajouter un commentaire