Inlinec – a C kód használatának új módja Python szkriptekben

projekt inlinec Javasoltak egy új módszert a C-kód Python-szkriptekbe történő integrálására. A C függvények közvetlenül ugyanabban a Python-kódfájlban vannak meghatározva, az „@inlinec” dekorátorral kiemelve. Az összefoglaló szkriptet a Python értelmező úgy hajtja végre, ahogyan van, és a Python által biztosított mechanizmus segítségével elemzi kodekek, amely lehetővé teszi egy értelmező csatlakoztatását a szkript átalakításához, mielőtt az értelmező feldolgozná (a kodek modult általában transzparens szöveg átkódolására használják, de lehetővé teszi a szkript tartalmának tetszőleges átalakítását is).

Az elemző modulként csatlakozik (az inlinec import inlinec-ből), amely elvégzi a kezdeti feldolgozást, és menet közben lefordítja az @inlinec annotációkkal kiemelt C függvények definícióit ctypes kötésekké, és lecseréli a C függvény törzsét felhívás ezekre a kötésekre. Egy ilyen átalakítás után a Python értelmező megkapja a szkript megfelelő konvertált forrásszövegét, amelyben a C függvények meghívása ctípusok. Hasonló módszert alkalmaznak a projektben is Pyxl4, amely lehetővé teszi a HTML és a Python kód keverését egy fájlban.

# kódolás: inlinec
inlinec-ből import inlinec

@inlinec
def teszt():
#include
void teszt() {
printf("Szervusz világ");
}

A fejlesztést eddig kísérleti prototípusként mutatják be, amely olyan hiányosságokat tartalmaz, mint a mutatók (karakterláncok kivételével) funkcióhoz való átadásának támogatásának hiánya, a futtatás szükségessége.
„gcc -E” kód előfeldolgozáshoz, közbenső *.so, *.o és *.c fájlok mentése az aktuális könyvtárba, nem gyorsítótárazza az átalakított verziót, és szükségtelen elemzési szakaszokat hajt végre (hosszú késleltetések minden egyes futás során).

Forrás: opennet.ru

Hozzászólás