Progetto ĆØ stato proposto un nuovo modo per l'integrazione inline del codice in C negli script Python. Le funzioni in C sono definite direttamente in un unico file con il codice Python, contraddistinte dal decoratore Ā«@inlinecĀ». Lo script complessivo viene eseguito tale e quale dall'interprete spython e analizzato utilizzando 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 ricodifica trasparente del testo, ma consente anche di trasformare arbitrariamente il contenuto dello script).
Il parser viene collegato come modulo («from inlinec import inlinec»), che esegue un'elaborazione preliminare e traduce al volo le definizioni delle funzioni in C, evidenziate dalle annotazioni @inlinec, in wrapper ctypes e sostituisce il corpo della funzione in C con una chiamata a questi wrapper. Dopo tale trasformazione, l'interprete Python riceve il testo sorgente dello script già corretto e trasformato, in cui le funzioni in C vengono chiamate tramite . Un metodo simile viene utilizzato anche nel progetto , che permette di mescolare codice HTML e Python in un unico file.
# coding: inlinec
from inlinec import inlinec
@inlinec
def test():
#include<stdio.h>
void test() {
printf(«Hello, world»);
}
Lo sviluppo viene ancora presentato come un prototipo sperimentale, in cui vengono segnalate alcune imperfezioni, come l'assenza del supporto per il passaggio di puntatori alla funzione (eccetto che per le stringhe), la necessitĆ di eseguire
«gcc -E» per la preelaborazione del codice, salvataggio dei file intermedi *.so, *.o e *.c nella directory corrente, assenza di caching della variante trasformata e svolgimento di ulteriori fasi di analisi (grandi ritardi ad ogni avvio).
Fonte: opennet.ru
