Inlinec - Python скрипттеринде C кодун колдонуунун жаңы жолу

долбоор inlinec C кодун Python скрипттерине интеграциялоонун жаңы ыкмасы сунушталды. C функциялары түздөн-түз ошол эле Python код файлында аныкталат, аны "@inlinec" жасалгалоочусу баса белгилейт. Кыскача скрипт Python котормочу тарабынан аткарылган жана Pythonдо берилген механизмдин жардамы менен талданат. кодектер, бул котормочу тарабынан скриптти талдоодон мурун аны трансформациялоо үчүн талдоочуну туташтырууга мүмкүндүк берет (эреже катары, кодектер модулу ачык текстти транскоддоо үчүн колдонулат, бирок ал ошондой эле скрипттин мазмунун өзүм билемдик менен өзгөртүүгө мүмкүндүк берет).

Талдоочу модуль катары туташтырылган («inlinec import inlinecден»), ал баштапкы иштетүүнү жүзөгө ашырат жана @inlinec аннотациялары аркылуу белгиленген C функцияларынын аныктамаларын ctypes байланыштарына которот жана C функциясынын корпусун менен алмаштырат бул байланыштарга чакыруу. Мындай трансформациядан кийин, Python котормочусу скрипттин туура конверттелген баштапкы текстин алат, мында C функциялары колдонулат түрлөрү. Ушундай эле ыкма долбоордо да колдонулат Pyxl4, бул сизге HTML жана Python кодун бир файлга аралаштырууга мүмкүндүк берет.

# коддоо: inlinec
inlinec импорттоодон inlinec

@inlinec
def test():
#кошуу
жараксыз тест() {
printf("Салам, дүйнө");
}

Иштеп чыгуу азырынча эксперименталдык прототиби катары берилген, анда функцияга көрсөткүчтөрдү (саптардан тышкары) өткөрүү үчүн колдоонун жоктугу, иштетүү зарылдыгы сыяктуу кемчиликтер бар.
"gcc -E" кодду алдын ала иштетүү, учурдагы каталогдо ортодогу *.so, *.o жана *.c файлдарын сактоо, конверттелген версияны кэш кылбоо жана керексиз талдоо этаптарын аткаруу үчүн (ал иштеген сайын узак кечигүү).

Source: opennet.ru

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