Inlinec — nowy sposób wykorzystania kodu C w skryptach Python

Projekt inlinec zaprezentowano nową metodę inline-integracji kodu w języku C do skryptów w języku Python. Funkcje w języku C są definiowane bezpośrednio w tym samym pliku co kod w języku Python, wyróżniając się dekoratorem „@inlinec”. Zbiorczy skrypt jest wykonywany przez interpreter skryptów Python i analizowany z wykorzystaniem wbudowanego mechanizmu w Pythonie. kodeków, który umożliwia podłączenie parsera do przekształcania skryptu przed jego analizą przez interpreter (zwykle używa się modułu codecs do przezroczystego konwertowania tekstu, ale pozwala również na dowolne przekształcanie zawartości skryptu).

Parser jest podłączany w postaci modułu („from inlinec import inlinec”), który przeprowadza wstępną obróbkę i na bieżąco tłumaczy definicje funkcji C, oznaczone adnotacjami @inlinec, na obwiednie ctypes oraz zastępuje ciało funkcji C wywołaniem tych obwiedni. Po takiej transformacji interpreter Python otrzymuje już prawidłowy, przekształcony tekst źródłowy skryptu, w którym funkcje C są wywoływane przy użyciu ctypes. Podobna metoda jest również stosowana w projekcie Pyxl4, który pozwala na mieszanie kodu HTML i Pythona w jednym pliku.

# coding: inlinec
from inlinec import inlinec

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

Rozwój nadal jest prezentowany jako prototyp eksperymentalny, w którym zauważono takie niedociągnięcia, jak brak wsparcia dla przekazywania wskaźników do funkcji (z wyjątkiem łańcuchów), konieczność uruchomienia
„gcc -E” w celu preprocessingu kodu, przechowywanie pośrednich plików *.so, *.o i *.c w bieżącym katalogu, brak cache'owania przekształconej wersji oraz wykonywanie zbędnych etapów analizy (duże opóźnienia przy każdym uruchomieniu).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster