Inlinec - 'n nuwe manier om C-kode in Python-skrifte te gebruik

projek inlync 'n Nuwe metode vir inlyn-integrasie van C-kode in Python-skrifte is voorgestel. C-funksies word direk in dieselfde Python-kodelêer gedefinieer, uitgelig deur die "@inlinec"-versierder. Die opsommingskrip word uitgevoer soos dit is deur die Python-tolk en ontleed met behulp van die meganisme wat in Python verskaf word kodeks, wat dit moontlik maak om 'n ontleder te koppel om die skrif te transformeer voordat dit deur die tolk ontleed word (in die reël word die kodek-module vir deursigtige tekstranskodering gebruik, maar dit laat jou ook toe om die inhoud van die skrif arbitrêr te transformeer).

Die ontleder is as 'n module gekoppel ("van inlinec import inlinec"), wat die aanvanklike verwerking uitvoer en die definisies van C-funksies wat met @inlinec-aantekeninge uitgelig is, in ctypes-bindings vertaal en die liggaam van die C-funksie vervang met 'n oproep na hierdie bindings. Na so 'n transformasie ontvang die Python-tolk die korrekte omgeskakelde bronteks van die skrif, waarin die C-funksies genoem word met ctipes. 'n Soortgelyke metode word ook in die projek gebruik Pyxl4, wat jou toelaat om HTML- en Python-kode in een lêer te meng.

# kodering: inlinec
van inlinec invoer inlinec

@inlinec
def toets():
#insluit
void test() {
printf("Hallo, wêreld");
}

Die ontwikkeling word tot dusver aangebied as 'n eksperimentele prototipe, wat sulke tekortkominge bevat soos die gebrek aan ondersteuning vir die deurgee van wysers (behalwe stringe) na die funksie, die behoefte om te hardloop
“gcc -E” vir kodevoorverwerking, stoor van intermediêre *.so-, *.o- en *.c-lêers in die huidige gids, om nie die omgeskakelde weergawe te kas nie en om onnodige ontledingstadia uit te voer (lang vertragings elke keer as dit loop).

Bron: opennet.ru

Voeg 'n opmerking