Inlinec - yon nouvo fason pou itilize kòd C nan scripts Python

Pwojè inlinec Yo pwopoze yon nouvo metòd pou entegrasyon kòd C nan scripts Python. Fonksyon C yo defini dirèkteman nan menm dosye kòd Python, dekoratè "@inlinec" make. Script rezime a egzekite jan li ye pa entèprèt Python a epi analize lè l sèvi avèk mekanis yo bay nan Python. kodèk, ki fè li posib pou konekte yon analizeur pou transfòme script la anvan analiz li pa entèprèt la (tankou yon règ, modil kodèk yo itilize pou transkodaj tèks transparan, men li pèmèt ou tou transfòme sa ki nan script la abitrèman).

Analyseur a konekte kòm yon modil ("soti nan inlinec enpòte inlinec"), ki fè premye pwosesis la ak sou-a-vole tradui definisyon yo nan fonksyon C make lè l sèvi avèk @inlinec annotations nan lyezon ctypes epi ranplase kò a nan fonksyon C a ak. yon apèl pou obligatwa sa yo. Apre yon transfòmasyon konsa, entèprèt Python resevwa tèks sous konvèti kòrèk la nan script la, kote yo rele fonksyon C yo lè l sèvi avèk ctip. Yon metòd menm jan an tou itilize nan pwojè a Pyxl4, ki pèmèt ou melanje HTML ak Python kòd nan yon sèl dosye.

# kodaj: inlinec
soti nan inlinec enpòte inlinec

@inlinec
tès def ():
# enkli
tès anile () {
printf ("Bonjou, mond");
}

Se devlopman an byen lwen tèlman prezante kòm yon pwototip eksperimantal, ki gen enpèfeksyon tankou mank de sipò pou pase endikasyon (eksepte fisèl) nan fonksyon an, bezwen nan kouri.
"gcc -E" pou preprocessing kòd, ekonomize dosye entèmedyè *.so, *.o ak *.c nan anyè aktyèl la, pa kachèt vèsyon an konvèti ak fè etap analiz ki pa nesesè (long reta chak fwa li kouri).

Sous: opennet.ru

Add nouvo kòmantè