Nuitka 2.0 чыгаруу, Python тили үчүн компилятор

Nuitka 2.0 долбоорунун релизи бар, ал Python скрипттерин C өкүлчүлүгүнө которуу үчүн компиляторду иштеп чыгууда, ал андан кийин CPython менен максималдуу шайкештик үчүн libpython аркылуу аткарылуучу файлга түзүлүшү мүмкүн (объекттерди манипуляциялоо үчүн жергиликтүү CPython куралдарын колдонуу). Python 2.6, 2.7, 3.3 - 3.11 учурдагы чыгарылыштары менен толук шайкештик камсыздалган. CPython менен салыштырганда, түзүлгөн скрипттер pystone тесттеринде 335% га жакшырды. Долбоордун коду Apache лицензиясы боюнча таратылат.

Жаңы версиядагы өзгөртүүлөрдүн арасында:

  • Топтом конфигурациясында өзгөрмөлөрдү колдонуу мүмкүнчүлүгү кошулду, бул компиляция убагында орнотулган пакеттерден маанилерди суроого жана ошол маанилерди арканы аныктоо үчүн колдонууга мүмкүндүк берет. Конфигурациядагы өзгөрмөлөрдү колдоо мурун туташтыруу плагиндерин талап кылган стандарттуу жолдор менен көптөгөн маселелерди чечүүгө мүмкүндүк берет.
  • Ар бир пакеттин конфигурациясына таасир этүү үчүн колдонуучу аныктаган параметрлерди колдоо кошулду. Параметрлерди жаңы get_parameter функциясы аркылуу окууга болот жана модулдардын жүрүм-турумун тандоо үчүн колдонулушу мүмкүн (мисалы, сиз Numba JIT же Torch JITти өчүрүү үчүн параметрди орното аласыз).
  • Конфигурацияда аныкталган, бирок onefile режиминде курууда аткарылуучу файлдан өзүнчө берилиши керек болгон маалымат файлынын шаблондорун көрсөтүү үчүн "--include-onefile-external-data" опциясы кошулду.
  • GCCде CFI (Control Flow Integrity) коргоо режимин орнотуу үчүн “--cf-protection” опциясы кошулду, ал нормалдуу аткаруу тартибин (башкаруу агымын) бузууну бөгөттөйт.
  • Plugin yaml файлдары үчүн бүтүндүктү текшерүү үчүн контролдук суммаларды түзүү мүмкүнчүлүгү ишке ашырылган, алар келечекте иштөө убактысын текшерүүнү уюштуруу үчүн колдонууну пландаштырууда.
  • Аракеттер сызыктар менен бөлүнгөн бир нече вариантты көрсөтүүгө мүмкүндүк берет (бөлүүчү катары жаңы сап колдонулат). Мисалы: include-data-dir: | a=bc=d
  • Цикл түрлөрүнүн анализи ишке ашырылды, ал келечекте тандалма оптималдаштырууну ишке ашыруу үчүн колдонулат.
  • Бөлүшүлбөгөн жана качып кеткен өзгөрмөлөр менен иштөөнү тездетүү үчүн оптималдаштыруулар кошулду.
  • Анти bloat плагининин мүмкүнчүлүктөрү кеңейтилди, аны азыр streamlit, torch, knetworkx, бөлүштүрүлгөн, skimage, bitsandbytes, tf_keras, pip, networkx жана pywt китепканаларын (негизинен, байланыштыруучу) колдонууда пакеттердин санын азайтуу үчүн колдонсо болот. pytest үчүн, IPython, мурун, тритон алынып салынат жана даск).

Source: opennet.ru

Комментарий кошуу