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

Projekt inlinec Predložena je nova metoda za inline integraciju C koda u Python skripte. C funkcije definirane su izravno u istoj Python kodnoj datoteci, istaknute dekoratorom “@inlinec”. Skriptu sažetka izvršava Python interpreter i analizira pomoću mehanizma koji pruža Python kodeci, što omogućuje povezivanje parsera za transformaciju skripte prije nego što ju interpreter analizira (u pravilu se modul kodeka koristi za transparentno transkodiranje teksta, ali također vam omogućuje da proizvoljno transformirate sadržaj skripte).

Parser je povezan kao modul ("from inlinec import inlinec"), koji izvodi početnu obradu i on-the-fly prevodi definicije C funkcija istaknutih pomoću @inlinec komentara u ctypes vezanja i zamjenjuje tijelo C funkcije s poziv na ove uveze. Nakon takve transformacije, Python tumač prima ispravan konvertirani izvorni tekst skripte, u kojem se C funkcije pozivaju pomoću ctipovi. Slična metoda također se koristi u projektu Pyxl4, koji vam omogućuje miješanje HTML i Python koda u jednoj datoteci.

# kodiranje: inlinec
iz inlinec import inlinec

@inlinec
def test():
#uključi
void test() {
printf("Zdravo, svijete");
}

Razvoj je do sada predstavljen kao eksperimentalni prototip, koji sadrži takve nedostatke kao što je nedostatak podrške za prosljeđivanje pokazivača (osim nizova) na funkciju, potrebu za pokretanjem
“gcc -E” za pretprocesiranje koda, spremanje međudatoteka *.so, *.o i *.c u trenutnom direktoriju, bez predmemoriranja pretvorene verzije i izvođenja nepotrebnih faza parsiranja (duga kašnjenja pri svakom pokretanju).

Izvor: opennet.ru

Dodajte komentar