Inlinec – nový způsob použití C kódu ve skriptech Pythonu

projekt inlinec Byla navržena nová metoda pro inline integraci kódu C do skriptů Pythonu. Funkce C jsou definovány přímo ve stejném souboru kódu Python, zvýrazněném dekorátorem „@inlinec“. Souhrnný skript je spuštěn tak, jak je, interpretem Pythonu a analyzován pomocí mechanismu poskytovaného v Pythonu kodeky, což umožňuje připojit parser pro transformaci skriptu před jeho analýzou interpretem (modul kodeků se zpravidla používá pro transparentní překódování textu, ale také umožňuje libovolně transformovat obsah skriptu).

Analyzátor je připojen jako modul („from inlinec import inlinec“), který provádí počáteční zpracování a za běhu převádí definice funkcí C zvýrazněné pomocí anotací @inlinec do vazeb ctypes a nahrazuje tělo funkce C volání těchto vazeb. Po takové transformaci obdrží interpret Pythonu správný převedený zdrojový text skriptu, ve kterém jsou funkce C volány pomocí ctypes. Podobná metoda je použita i v projektu Pyxl4, který umožňuje smíchat kód HTML a Python v jednom souboru.

# kódování: inlinec
z inlinec import inlinec

@inlinec
def test():
#zahrnout
void test() {
printf("Ahoj světe");
}

Vývoj je zatím prezentován jako experimentální prototyp, který obsahuje takové nedostatky, jako je chybějící podpora předávání ukazatelů (kromě řetězců) do funkce, nutnost spouštění
„gcc -E“ pro předběžné zpracování kódu, ukládání přechodných souborů *.so, *.o a *.c do aktuálního adresáře, neukládání převedené verze do mezipaměti a provádění zbytečných fází analýzy (dlouhé prodlevy při každém spuštění).

Zdroj: opennet.ru

Přidat komentář