Progetto è stato proposto un nuovo metodo per l'integrazione inline di codice C negli script Python. Le funzioni in C sono definite direttamente in un unico file insieme al codice Python, contrassegnate con il decoratore «@inlinec». Lo script risultante viene eseguito direttamente dall'interprete spython e analizzato usando il meccanismo fornito in Python , che consente di collegare un parser per trasformare lo script prima della sua analisi da parte dell'interprete (di solito, il modulo codecs viene utilizzato per la codifica testuale trasparente, ma consente anche di trasformare arbitrariamente il contenuto dello script).
Il parser è incluso come modulo («from inlinec import inlinec»), che esegue un'elaborazione preliminare e traduce al volo le definizioni delle funzioni C contrassegnate con annotazioni @inlinec in wrapper ctypes, sostituendo il corpo della funzione C con una chiamata a questi wrapper. Dopo tale trasformazione, l'interprete Python riceve il testo sorgente dello script già corretto, dove le funzioni C sono chiamate tramite . Un metodo simile è utilizzato anche nel progetto , che consente di mescolare codice HTML e Python in un singolo file.
# coding: inlinec
da inlinec import inlinec
@inlinec
def test():
#include<stdio.h>
void test() {
printf(«Ciao, mondo»);
}
Lo sviluppo è attualmente presentato come un prototipo sperimentale, nel quale emergono diverse mancanze, come l'assenza di supporto per il passaggio di puntatori alle funzioni (eccetto per le stringhe), la necessità di eseguire
«gcc -E» per il preprocessamento del codice, la conservazione dei file intermedi *.so, *.o e *.c nella directory corrente, l'assenza di caching della variante trasformata e l'esecuzione di stadi di analisi superflui (grandi ritardi ad ogni esecuzione).
Fonte: opennet.ru
