Inlinec - en ny måte å bruke C-kode i Python-skript

Prosjekt inlinec En ny metode for innebygd integrering av C-kode i Python-skript har blitt foreslått. C-funksjoner er definert direkte i den samme Python-kodefilen, uthevet av "@inlinec"-dekoratoren. Oppsummeringsskriptet kjøres som det er av Python-tolken og analyseres ved hjelp av mekanismen gitt i Python kodeker, som gjør det mulig å koble til en parser for å transformere skriptet før det analyseres av tolken (som regel brukes kodekmodulen for transkoding av transparent tekst, men den lar deg også transformere innholdet i skriptet vilkårlig).

Parseren er koblet til som en modul ("fra inlinec import inlinec"), som utfører den innledende behandlingen og oversetter definisjonene av C-funksjoner uthevet ved hjelp av @inlinec-merknader til ctypes-bindinger og erstatter kroppen til C-funksjonen med en oppfordring til disse bindingene. Etter en slik transformasjon mottar Python-tolkeren den riktige konverterte kildeteksten til skriptet, der C-funksjonene kalles ved hjelp av typer. En lignende metode er også brukt i prosjektet Pyxl4, som lar deg blande HTML- og Python-kode i én fil.

# koding: inlinec
fra inlinec import inlinec

@inlinec
def test():
#inkludere
void test() {
printf("Hei verden");
}

Utviklingen er så langt presentert som en eksperimentell prototype, som inneholder slike mangler som mangel på støtte for å sende pekere (unntatt strenger) til funksjonen, behovet for å kjøre
"gcc -E" for kodeforbehandling, lagring av mellomliggende *.so-, *.o- og *.c-filer i gjeldende katalog, ikke bufring av den konverterte versjonen og utføring av unødvendige parsing-trinn (lange forsinkelser hver gang den kjører).

Kilde: opennet.ru

Legg til en kommentar