Inlinec - novi način korištenja C koda u Python skriptama

projekat inlinec Predložena je nova metoda za inline integraciju C koda u Python skripte. C funkcije su definirane direktno u istoj Python kodnoj datoteci, istaknute dekoratorom “@inlinec”. Skriptu sažetka izvršava Python interpreter i analizira je koristeći mehanizam koji je dat u Pythonu kodeci, što omogućava povezivanje parsera da transformiše skriptu pre nego što ga interpretator analizira (po pravilu se modul kodeka koristi za transparentno transkodiranje teksta, ali vam takođe omogućava da proizvoljno transformišete sadržaj skripte).

Parser je povezan kao modul (“od inlinec import inlinec”), koji obavlja početnu obradu i on-the-fly prevodi definicije C funkcija istaknutih pomoću @inlinec napomena u ctypes veze i zamjenjuje tijelo funkcije C sa poziv na ove veze. Nakon takve transformacije, Python interpreter prima ispravan konvertovani izvorni tekst skripte, u kojem se C funkcije pozivaju pomoću ctypes. Slična metoda se također koristi u projektu Pyxl4, koji vam omogućava da pomiješate HTML i Python kod u jednoj datoteci.

# kodiranje: inlinec
iz inlinec uvoz inlinec

@inlinec
def test():
#include
void test() {
printf("Zdravo, svijet");
}

Razvoj je do sada predstavljen kao eksperimentalni prototip, koji sadrži nedostatke kao što su nedostatak podrške za prosljeđivanje pokazivača (osim nizova) na funkciju, potreba za pokretanjem
“gcc -E” za prethodnu obradu koda, spremanje srednjih *.so, *.o i *.c datoteka u trenutnom direktoriju, ne keširanje konvertovane verzije i izvođenje nepotrebnih faza raščlanjivanja (duga kašnjenja svaki put kada se pokrene).

izvor: opennet.ru

Dodajte komentar