Inlinec — o nouă modalitate de utilizare a codului C în scripturile Python

Proiectul inlinec a fost propus o nouă metodă de integrare inline a codului în limbajul C în scripturi scrise în Python. Funcțiile în C sunt definite direct într-un singur fișier cu cod Python, fiind evidențiate prin decoratorul „@inlinec”. Scriptul agregat este executat ca atare de către interpretul spython și este analizat folosind mecanismul furnizat în Python codecuri, oferind posibilitatea de a conecta un parser pentru a transforma scriptul înainte de a fi analizat de interpret (de obicei, modulul codecs este utilizat pentru re-encodarea transparentă a textului, dar permite și transformarea la alegere a conținutului scriptului).

Parserul este conectat sub formă de modul („from inlinec import inlinec”), care efectuează prelucrarea inițială și în timp real transformă definițiile funcțiilor din C, evidențiate prin adnotări @inlinec, în înfășurări ctypes și înlocuiește corpul funcției C cu apelul acestor înfășurări. După o asemenea transformare, interpretul Python primește deja textul sursă corect transformat al scriptului, în care funcțiile C sunt apelate prin ctypes. O metodă similară este utilizată și în proiectul Pyxl4, care permite amestecarea codului HTML și Python într-un singur fișier.

# coding: inlinec
from inlinec import inlinec

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

Dezvoltarea este încă prezentată ca un prototip experimental, în care sunt semnalate anumite neajunsuri, cum ar fi lipsa suportului pentru transmiterea de indicii în funcție (cu excepția șirurilor), necesitatea de a rula
"gcc -E" pentru preprocessarea codului, salvarea fișierelor intermediare *.so, *.o și *.c în directorul curent, lipsa cache-ului pentru varianta transformată și executarea de etape suplimentare de analiză (intârzieri mari la fiecare execuție).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster