project
De parser is verbonden als een module (“from inlinec import inlinec”), die de initiële verwerking uitvoert en de definities van C-functies die zijn gemarkeerd met @inlinec-annotaties on-the-fly vertaalt naar ctypes-bindingen en de hoofdtekst van de C-functie vervangt door een oproep aan deze bindingen. Na zo’n transformatie ontvangt de Python-interpreter de correct geconverteerde brontekst van het script, waarin de C-functies worden aangeroepen met behulp van
# codering: inlinec
van inlinec importeer inlinec
@inlinec
zeker testen():
#inclusief
ongeldige test() {
printf("Hallo wereld");
}
De ontwikkeling wordt tot nu toe gepresenteerd als een experimenteel prototype, dat tekortkomingen bevat als het gebrek aan ondersteuning voor het doorgeven van pointers (behalve strings) aan de functie, de noodzaak om
“gcc -E” voor codevoorverwerking, het opslaan van tussenliggende *.so-, *.o- en *.c-bestanden in de huidige map, het niet in de cache opslaan van de geconverteerde versie en het uitvoeren van onnodige parseerfasen (lange vertragingen elke keer dat deze wordt uitgevoerd).
Bron: opennet.ru