Projekt byl navržen nový způsob inline-integrace kódu v jazyce C do skriptů v Pythonu. Funkce v jazyce C jsou definovány přímo v jednom souboru s kódem v Pythonu, vyznačujícími se dekorátorem „@inlinec“. Souhrnný skript je prováděn tak, jak je, interpretem spython a je analyzován pomocí poskytnutého mechanismu v Pythonu. , který umožňuje připojit parser pro transformaci skriptu před jeho analýzou interpretem (obvykle se používá modul codecs pro průhlednou překódování textu, ale umožňuje také libovolně transformovat obsah skriptu).
Parser se připojuje jako modul („from inlinec import inlinec“), který provádí primární zpracování a za běhu převádí definice C-funkcí vyznačených pomocí anotací @inlinec na ctypes-obálky a nahrazuje tělo C-funkce voláním těchto obálek. Po takové transformaci dostává Python interpreter již správný transformovaný zdrojový text skriptu, ve kterém jsou funkce C volány pomocí . Podobná metoda je také aplikována v projektu , který umožňuje míchat HTML a Python kód v jednom souboru.
# coding: inlinec
from inlinec import inlinec
@inlinec
def test():
#include<stdio.h>
void test() {
printf(„Ahoj, světe“);
}
Vývoj je zatím prezentován jako experimentální prototyp, ve kterém jsou zaznamenány takové nedostatky, jako je absence podpory přenosu ukazatelů do funkce (kromě řetězců), nutnost spuštění
„gcc -E“ pro preprocesing kódu, ukládání mezičinných *.so, *.o a *.c souborů v aktuálním adresáři, absence cachování transformovaného variantu a provádění zbytečných fází analýzy (velká zpoždění při každém spuštění).
Zdroj: opennet.ru
