Inlinec – eine neue Methode zur Verwendung von C-Code in Python-Skripten

Projekt inlinec schlĂ€gt eine neue Methode der Inline-Integration von C-Code in Python-Skripte vor. C-Funktionen werden direkt in einer Datei zusammen mit Python-Code definiert und heben sich durch den Dekorator „@inlinec“ ab. Das Summary-Skript wird vom Interpreter spython genau so ausgefĂŒhrt und mit dem in Python bereitgestellten Mechanismus analysiert. der Codecs, der es ermöglicht, einen Parser anzuschließen, um das Skript vor seiner Analyse durch den Interpreter umzuwandeln (in der Regel wird das Modul codecs fĂŒr eine transparente Umkodierung des Textes verwendet, erlaubt jedoch auch beliebige Transformationen des Inhalts des Skripts).

Der Parser wird als Modul ("from inlinec import inlinec") angeschlossen, das die vorlĂ€ufige Verarbeitung durchfĂŒhrt und die mit Hilfe der Annotationen @inlinec gekennzeichneten Definitionen von C-Funktionen zur Laufzeit in ctypes-Bindungen ĂŒbersetzt und den C-Funktionskörper durch den Aufruf dieser Bindungen ersetzt. Nach dieser Umwandlung erhĂ€lt der Python-Interpreter bereits den korrekt umgewandelten Quelltext des Skripts, in dem C-Funktionen ĂŒber ctypesaufgerufen werden. Eine Ă€hnliche Methode wird auch im Projekt Pyxl4angewendet, das es erlaubt, HTML- und Python-Code in einer Datei zu mischen.

# coding: inlinec
from inlinec import inlinec

@inlinec
def test():
#include<stdio.h>
void test() {
printf("Hello, world");
}

Die Entwicklung wird derzeit als experimenteller Prototyp prĂ€sentiert, in dem solche MĂ€ngel wie die fehlende UnterstĂŒtzung fĂŒr das Übergeben von Zeigern an Funktionen (außer Strings), die Notwendigkeit, „gcc -E“ fĂŒr das Preprocessing des Codes auszufĂŒhren, das Speichern von Zwischendateien *.so, *.o und *.c im aktuellen Verzeichnis, das Fehlen eines Cache fĂŒr die umgewandelte Variante und das AusfĂŒhren ĂŒberflĂŒssiger Analysephasen (hohe Verzögerungen bei jedem Start) festgestellt werden.
FĂŒr den Raspberry Pi 4 wird die UnterstĂŒtzung fĂŒr OpenGL ES 3.1 zertifiziert und ein neuer Vulkan-Treiber entwickelt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4