Inlinec - una nova manera di utilizà u codice C in script Python

prughjettu inlinec Un novu metudu per l'integrazione in linea di codice C in script Python hè statu prupostu. E funzioni C sò definite direttamente in u stessu schedariu di codice Python, evidenziatu da u decoratore "@inlinec". U script di riassuntu hè eseguitu cumu hè da l'interprete Python è analizatu cù u mecanismu furnitu in Python. codecs, chì permette di cunnette un parser per trasfurmà l'script prima di analizà da l'interprete (in regula, u modulu di codecs hè utilizatu per a transcodificazione di testu trasparenti, ma permette ancu di trasfurmà arbitrariamente u cuntenutu di u script).

L'analizzatore hè cunnessu cum'è un modulu ("da inlinec import inlinec"), chì esegue u prucessu iniziale è traduce à a mosca e definizioni di funzioni C evidenziate usendu @inlinec annotations in ctypes bindings è rimpiazza u corpu di a funzione C cù una chjama à questi ligami. Dopu una tale trasfurmazioni, l'interprete Python riceve u testu fonte cunvertitu currettu di u script, in quale e funzioni C sò chjamate usendu ctipi. Un metudu simili hè ancu usatu in u prugettu Pyxl4, chì permette di mischjà codice HTML è Python in un schedariu.

# codificazione: inlinec
da inlinec import inlinec

@inlinec
def test():
#include
void test () {
printf ("Salutu, mondu");
}

U sviluppu hè finu à avà prisentatu cum'è un prototipu spirimintali, chì cuntene tali mancanze cum'è a mancanza di supportu per passà punters (eccettu strings) à a funzione, a necessità di curriri.
"gcc -E" per a preprocessazione di codice, salvendu i schedarii intermedi *.so, *.o è *.c in u repertoriu attuale, micca cachendu a versione cunvertita è eseguendu fasi di analisi innecessarii (longu ritardi ogni volta chì corre).

Source: opennet.ru

Add a comment