Inlinec - нов начин за користење C код во скрипти на Python

Проект inlinec Предложен е нов метод за вградена интеграција на C код во скрипти на Python. Функциите C се дефинирани директно во истата датотека со код на Python, означена со декораторот „@inlinec“. Резимената скрипта се извршува како што е интерпретаторот на Python и се анализира со помош на механизмот обезбеден во Python кодеци, што овозможува да се поврзе парсер за трансформирање на скриптата пред да се анализира од страна на толкувачот (по правило, модулот за кодеци се користи за транспарентно транскодирање на текст, но исто така ви овозможува произволно да ја трансформирате содржината на скриптата).

Парсерот е поврзан како модул („од inlinec import inlinec“), кој ја врши почетната обработка и на лето ги преведува дефинициите на функциите C означени со користење на @inlinec прибелешки во сврзувачки типови и го заменува телото на функцијата C со повик до овие врски. По таквата трансформација, толкувачот на Python го добива точниот конвертиран изворен текст на скриптата, во која функциите C се повикуваат со користење cтипови. Сличен метод се користи и во проектот Pyxl4, кој ви овозможува да мешате HTML и Python код во една датотека.

# кодирање: inlinec
од inlinec увоз inlinec

@inlinec
деф тест ():
#вклучи
неважечки тест() {
printf ("Здраво, свет");
}

Развојот досега е претставен како експериментален прототип, кој содржи такви недостатоци како што се недостатокот на поддршка за пренесување покажувачи (освен стрингови) до функцијата, потребата да се изврши
„gcc -E“ за претпроцесирање на кодот, зачувување на средни датотеки *.so, *.o и *.c во тековниот директориум, не кеширање на конвертираната верзија и изведување непотребни фази на парсирање (долго доцнење секој пат кога ќе се изврши).

Извор: opennet.ru

Додадете коментар