Κυκλοφορία του Nuitka 1.1, ενός μεταγλωττιστή για τη γλώσσα Python

Μια έκδοση του έργου Nuitka 1.1 είναι διαθέσιμη, αναπτύσσοντας έναν μεταγλωττιστή για τη μετάφραση σεναρίων Python σε αναπαράσταση C, η οποία στη συνέχεια μπορεί να μεταγλωττιστεί σε ένα εκτελέσιμο αρχείο χρησιμοποιώντας το libpython για μέγιστη συμβατότητα με το CPython (χρησιμοποιώντας εγγενή εργαλεία CPython για χειρισμό αντικειμένων). Παρέχεται πλήρης συμβατότητα με τις τρέχουσες εκδόσεις Python 2.6, 2.7, 3.3 - 3.10. Σε σύγκριση με το CPython, τα μεταγλωττισμένα σενάρια δείχνουν βελτίωση απόδοσης 335% στις δοκιμές pystone. Ο κώδικας του έργου διανέμεται με την άδεια Apache.

Μεταξύ των αλλαγών στη νέα έκδοση:

  • Οι δυνατότητες για τον καθορισμό της διαμόρφωσης σε μορφή Yaml έχουν επεκταθεί.
  • Έχουν γίνει βελτιστοποιήσεις που σχετίζονται με τον αποκλεισμό αχρησιμοποίητων στοιχείων της τυπικής βιβλιοθήκης (zoneinfo, concurrent, asyncio, κ.λπ.), γεγονός που κατέστησε δυνατή τη μείωση του μεγέθους των εκτελέσιμων αρχείων που προέκυψαν.
  • Προστέθηκε υποστήριξη για εναλλακτική σύνταξη ("|") σε αντιστοιχίσεις μοτίβων με βάση τον τελεστή "match" που εισήχθη στην Python 3.10.
  • Εξασφαλίζεται η συμβατότητα με το jinja2.PackageLoader.
  • Εφάρμοσε τη δυνατότητα αλλαγής του μεγέθους του χαρακτηριστικού __defaults__.
  • Προστέθηκε υποστήριξη για τις λειτουργίες importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata και importlib_metadata.metadata.
  • Η υποστήριξη για τη συμπερίληψη πρόσθετων δυαδικών αρχείων στο κύριο εκτελέσιμο αρχείο έχει προστεθεί στη λειτουργία μεταγλώττισης Onefile.
  • Οι μεταγλωττισμένες λειτουργικές μονάδες υλοποιούν τη δυνατότητα χρήσης της συνάρτησης importlib.resources.files.
  • Η επιλογή "--include-package-data" επιτρέπει τον καθορισμό μασκών αρχείων, για παράδειγμα, "--include-package-data=package_name=*.txt".
  • Για το macOS, έχει υλοποιηθεί υποστήριξη για ψηφιακή υπογραφή εκτελέσιμων αρχείων.
  • Παρέχεται μια μέθοδος για πρόσθετα για την παράκαμψη συναρτήσεων για το εκτελέσιμο αρχείο.
  • Οι δυνατότητες του πρόσθετου anti-bloat έχουν επεκταθεί, το οποίο μπορεί πλέον να χρησιμοποιηθεί για τη μείωση του αριθμού των πακέτων κατά τη χρήση των βιβλιοθηκών rich, pyrec και pytorch. Η δυνατότητα χρήσης κανονικών εκφράσεων σε κανόνες αντικατάστασης έχει εφαρμοστεί.
  • Οι παλινδρομικές αλλαγές που προκύπτουν από σημαντικές βελτιστοποιήσεις που εφαρμόστηκαν στην τελευταία έκδοση έχουν επιλυθεί.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο