Inlinec - Python skriptlərində C kodundan istifadə etməyin yeni yolu

layihə inlinec C kodunun Python skriptlərinə daxili inteqrasiyası üçün yeni üsul təklif edilmişdir. C funksiyaları birbaşa “@inlinec” dekoratoru ilə vurğulanan eyni Python kod faylında müəyyən edilir. Xülasə skripti Python tərcüməçisi tərəfindən olduğu kimi icra edilir və Python-da təqdim olunan mexanizmdən istifadə edərək təhlil edilir. kodeklər, bu, tərcüməçi tərəfindən skripti təhlil etməzdən əvvəl skripti çevirmək üçün təhlilçini birləşdirməyə imkan verir (bir qayda olaraq, kodeklər modulu şəffaf mətnin kodlaşdırılması üçün istifadə olunur, lakin o, həm də skriptin məzmununu özbaşına çevirməyə imkan verir).

Ayrışdırıcı modul kimi qoşulur (“inlinec import inlinec-dən”), o, ilkin emal həyata keçirir və @inlinec annotasiyalarından istifadə etməklə vurğulanan C funksiyalarının təriflərini ctypes bağlamalarına çevirir və C funksiyasının gövdəsini ilə əvəz edir. bu bağlamalara çağırış. Belə bir transformasiyadan sonra Python tərcüməçisi skriptin düzgün çevrilmiş mənbə mətnini alır, burada C funksiyaları istifadə edərək çağırılır. növləri. Layihədə də oxşar üsuldan istifadə olunur Pyxl4HTML və Python kodunu bir faylda qarışdırmağa imkan verir.

# kodlaşdırma: inlinec
inlinec import inlinec-dən

@inlinec
def testi ():
#daxil edin
boşluq testi () {
printf("Salam, dünya");
}

İnkişaf indiyə qədər eksperimental prototip kimi təqdim olunur, burada funksiyaya göstəricilərin (sətirlərdən başqa) ötürülməsi üçün dəstəyin olmaması, işə salınma ehtiyacı kimi çatışmazlıqlar var.
"gcc -E" kodun əvvəlcədən işlənməsi, aralıq *.so, *.o və *.c fayllarını cari qovluqda saxlamaq, çevrilmiş versiyanı keşləməmək və lazımsız təhlil mərhələlərini yerinə yetirmək (hər dəfə işlədiyi zaman uzun gecikmələr).

Mənbə: opennet.ru

Добавить комментарий