Inlinec - nov način uporabe kode C v skriptih Python

Projekt inlinec Predlagana je bila nova metoda za inline integracijo kode C v skripte Python. Funkcije C so definirane neposredno v isti kodni datoteki Python, označene z dekoratorjem »@inlinec«. Skript povzetka izvede tolmač Python tako, kot je, in razčleni z uporabo mehanizma, ki je na voljo v Pythonu kodeki, ki omogoča povezavo razčlenjevalnika za preoblikovanje skripta, preden ga razčleni tolmač (modul kodekov se praviloma uporablja za transparentno transkodiranje besedila, omogoča pa tudi poljubno preoblikovanje vsebine skripta).

Razčlenjevalnik je povezan kot modul (»from inlinec import inlinec«), ki izvaja začetno obdelavo in sproti prevaja definicije funkcij C, označenih z anotacijami @inlinec, v vezave ctypes in nadomesti telo funkcije C z poziv k tem vezavam. Po takšni transformaciji tolmač Python prejme pravilno pretvorjeno izvorno besedilo skripta, v katerem se funkcije C kličejo z ctypes. Podobna metoda je uporabljena tudi v projektu Pyxl4, ki omogoča mešanje kode HTML in Python v eni datoteki.

# kodiranje: inlinec
iz inlinec uvoz inlinec

@inlinec
def test():
#vključi
void test() {
printf("Pozdravljen, svet");
}

Razvoj je zaenkrat predstavljen kot eksperimentalni prototip, ki vsebuje pomanjkljivosti, kot so pomanjkanje podpore za podajanje kazalcev (razen nizov) na funkcijo, potrebo po zagonu
»gcc -E« za predhodno obdelavo kode, shranjevanje vmesnih datotek *.so, *.o in *.c v trenutni imenik, brez predpomnjenja pretvorjene različice in izvajanja nepotrebnih stopenj razčlenjevanja (velike zamude ob vsakem zagonu).

Vir: opennet.ru

Dodaj komentar