Projekt 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 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 aufgerufen werden. Eine Ă€hnliche Methode wird auch im Projekt angewendet, 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
