Inlinec - роҳи нави истифодаи рамзи C дар скриптҳои Python

лоиҳа inlinec Усули нави ҳамгироии дохилии рамзи C ба скриптҳои Python пешниҳод шудааст. Функсияҳои C бевосита дар ҳамон файли рамзи Python муайян карда мешаванд, ки онро ороишгари "@inlinec" таъкид мекунад. Скрипти ҷамъбастӣ ҳамчун тарҷумони Python иҷро карда мешавад ва бо истифода аз механизми дар Python пешниҳодшуда таҳлил карда мешавад. кодекҳо, ки имкон медиҳад, ки парсер барои табдил додани скрипт пеш аз таҳлили он аз ҷониби тарҷумон пайваст карда шавад (чун қоида, модули кодекҳо барои транскодкунии шаффофи матн истифода мешавад, аммо он инчунин ба шумо имкон медиҳад, ки мундариҷаи скриптро худсарона табдил диҳед).

Таҳлилкунанда ҳамчун модул пайваст карда шудааст ("аз inlinec import inlinec"), ки коркарди ибтидоиро иҷро мекунад ва дар вақти зуд таърифҳои функсияҳои C-ро, ки бо истифода аз шарҳҳои @inlinec таъкид шудаанд, ба пайвандҳои ctypes тарҷума мекунад ва ҷисми функсияи C-ро бо даъват ба ин бастаҳо. Пас аз чунин табдил, тарҷумони Python матни дурусти табдилшудаи скриптро мегирад, ки дар он функсияҳои C бо истифода аз намудҳо. Дар лоиха низ хамин гуна усул истифода мешавад Pyxl4, ки ба шумо имкон медиҳад, ки рамзи HTML ва Python-ро дар як файл омехта кунед.

# рамзгузорӣ: inlinec
аз воридоти inlinec inlinec

@inlinec
def test ():
#дохил кунед
санҷиши беэътибор () {
printf("Салом, ҷаҳон");
}

Таҳия то ҳол ҳамчун прототипи таҷрибавӣ пешниҳод карда мешавад, ки дорои чунин камбудиҳо, ба монанди набудани дастгирии интиқоли нишондиҳандаҳо (ба истиснои сатрҳо) ба функсия, зарурати иҷро кардани
"gcc -E" барои коркарди пешакии код, захира кардани файлҳои фосилавии *.so, *.o ва *.c дар феҳристи ҷорӣ, кэш накардани версияи табдилшуда ва иҷрои марҳилаҳои таҳлили нолозим (таъхирҳои тӯлонӣ ҳар дафъае, ки он кор мекунад).

Манбаъ: opennet.ru

Илова Эзоҳ