Inlinec – eine neue Möglichkeit, C-Code in Python-Skripten zu verwenden

Projekt inlinec Es wurde eine neue Methode zur Inline-Integration von C-Code in Python-Skripte vorgeschlagen. C-Funktionen werden direkt in derselben Python-Codedatei definiert und durch den Dekorator „@inlinec“ hervorgehoben. Das Zusammenfassungsskript wird unverändert vom Python-Interpreter ausgeführt und mithilfe des in Python bereitgestellten Mechanismus analysiert Codecs, was es ermöglicht, einen Parser anzuschließen, um das Skript zu transformieren, bevor es vom Interpreter analysiert wird (in der Regel wird das Codecs-Modul für die transparente Texttranskodierung verwendet, es ermöglicht Ihnen aber auch, den Inhalt des Skripts beliebig zu transformieren).

Der Parser ist als Modul angeschlossen („from inlinec import inlinec“), das die anfängliche Verarbeitung durchführt und die Definitionen von C-Funktionen, die mithilfe von @inlinec-Annotationen hervorgehoben wurden, im laufenden Betrieb in ctypes-Bindungen übersetzt und den Hauptteil der C-Funktion durch ersetzt ein Aufruf an diese Bindungen. Nach einer solchen Transformation erhält der Python-Interpreter den korrekt konvertierten Quelltext des Skripts, in dem die C-Funktionen aufgerufen werden ctypen. Eine ähnliche Methode wird auch im Projekt verwendet Pyxl4, mit dem Sie HTML- und Python-Code in einer Datei mischen können.

# Codierung: inlinec
Von Inlinec Import Inlinec

@inlinec
def test():
#einschließen
void test() {
printf("Hallo Welt");
}

Bisher wird die Entwicklung als experimenteller Prototyp präsentiert, der Mängel wie die fehlende Unterstützung für die Übergabe von Zeigern (außer Strings) an die Funktion und die Notwendigkeit der Ausführung aufweist
„gcc -E“ für die Code-Vorverarbeitung, das Speichern von Zwischendateien *.so, *.o und *.c im aktuellen Verzeichnis, kein Zwischenspeichern der konvertierten Version und das Durchführen unnötiger Analyseschritte (lange Verzögerungen bei jeder Ausführung).

Source: opennet.ru

Kommentar hinzufügen