Inlinec - en ny måde at bruge C-kode i Python-scripts

projekt inlinec En ny metode til inline integration af C-kode i Python-scripts er blevet foreslået. C-funktioner er defineret direkte i den samme Python-kodefil, fremhævet af "@inlinec"-dekoratøren. Opsummeringsscriptet udføres som det er af Python-fortolkeren og parses ved hjælp af mekanismen i Python codecs, som gør det muligt at forbinde en parser for at transformere scriptet, før det parses af fortolkeren (som regel bruges codecs-modulet til transkodning af transparent tekst, men det giver dig også mulighed for vilkårligt at transformere indholdet af scriptet).

Parseren er forbundet som et modul ("fra inlinec import inlinec"), som udfører primær behandling og oversætter definitionerne af C-funktioner, fremhævet ved hjælp af @inlinec-annoteringer, til ctypes-bindinger og erstatter C-funktionens krop. med opfordring til disse bindinger. Efter en sådan transformation modtager Python-fortolkeren den korrekte konverterede kildetekst til scriptet, hvori C-funktionerne kaldes vha. ctyper. En lignende metode anvendes også i projektet Pyxl4, som giver dig mulighed for at blande HTML- og Python-kode i én fil.

# kodning: inlinec
fra inlinec import inlinec

@inlinec
def test():
#omfatte
void test() {
printf("Hej verden");
}

Udviklingen er indtil videre præsenteret som en eksperimentel prototype, der indeholder sådanne mangler som manglende støtte til at sende pointere (undtagen strenge) til funktionen, behovet for at køre
"gcc -E" til kodeforbehandling, lagring af mellemliggende *.so-, *.o- og *.c-filer i den aktuelle mappe, ikke cachelagring af den konverterede version og udførelse af unødvendige parsing-trin (lange forsinkelser hver gang den kører).

Kilde: opennet.ru

Tilføj en kommentar