Inlinec – naujas būdas naudoti C kodą Python scenarijuose

projektą inlinec Buvo pasiūlytas naujas C kodo integravimo į Python scenarijus metodas. C funkcijos apibrėžiamos tiesiogiai tame pačiame Python kodo faile, paryškintame „@inlinec“ dekoratoriaus. Santraukos scenarijus vykdomas kaip Python interpretatorius ir išanalizuojamas naudojant Python pateiktą mechanizmą kodekai, kuris leidžia prijungti analizatorių, kad pakeistų scenarijų prieš jį analizuojant interpretatoriui (paprastai kodekų modulis naudojamas skaidriam teksto perkodavimui, tačiau jis taip pat leidžia savavališkai transformuoti scenarijaus turinį).

Analizatorius yra prijungtas kaip modulis („iš inlinec importo inlinec“), kuris atlieka pradinį apdorojimą ir tiesioginiu būdu paverčia C funkcijų apibrėžimus, paryškintas naudojant @inlinec anotacijas, į ctypes įrišimus ir pakeičia C funkcijos turinį skambutis į šiuos apkaustus. Po tokios transformacijos Python interpretatorius gauna teisingą konvertuotą scenarijaus šaltinio tekstą, kuriame C funkcijos iškviečiamos naudojant ctipai. Panašus metodas taip pat naudojamas projekte Pyxl4, kuri leidžia maišyti HTML ir Python kodus viename faile.

# kodavimas: inlinec
iš inlinec importuoti inlinec

@inlinec
def testas ():
#įtraukti
galiojantis testas() {
printf ("Sveikas, pasauli");
}

Kūrimas kol kas pristatomas kaip eksperimentinis prototipas, kuriame yra tokių trūkumų, kaip palaikymo trūkumas perduodant rodykles (išskyrus eilutes) funkcijai, poreikis paleisti
„gcc -E“, skirtas išankstiniam kodo apdorojimui, tarpinių *.so, *.o ir *.c failų išsaugojimui dabartiniame kataloge, konvertuotos versijos neįrašymas į talpyklą ir nereikalingų analizavimo etapų atlikimas (ilgi delsa kiekvieną kartą, kai ji paleidžiama).

Šaltinis: opennet.ru

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