Inlinec - jauns veids, kā izmantot C kodu Python skriptos

Projekts inlinec Ir ierosināta jauna metode C koda integrēšanai Python skriptos. C funkcijas ir definētas tieši tajā pašā Python koda failā, ko iezīmē "@inlinec" dekorators. Kopsavilkuma skriptu izpilda Python tulks un parsē, izmantojot Python nodrošināto mehānismu kodekus, kas ļauj pieslēgt parsētāju, lai pārveidotu skriptu pirms tā parsēšanas, ko veic tulks (parasti kodeku modulis tiek izmantots caurspīdīgai teksta pārkodēšanai, taču tas ļauj arī patvaļīgi pārveidot skripta saturu).

Parsētājs ir savienots kā modulis (“no inlinec import inlinec”), kas veic sākotnējo apstrādi un lidojumā pārvērš C funkciju definīcijas, kas izceltas, izmantojot @inlinec anotācijas, ctypes saitēs un aizstāj C funkcijas pamattekstu ar aicinājums uz šiem stiprinājumiem. Pēc šādas transformācijas Python tulks saņem pareizo konvertēto skripta avota tekstu, kurā tiek izsauktas C funkcijas, izmantojot ctipi. Līdzīga metode tiek izmantota arī projektā Pyxl4, kas ļauj sajaukt HTML un Python kodu vienā failā.

# kodēšana: inlinec
no inlinec importēt inlinec

@inlinec
def tests ():
#iekļaut
spēkā neesošs tests() {
printf ("Sveika, pasaule");
}

Izstrāde līdz šim tiek prezentēta kā eksperimentāls prototips, kurā ir tādi trūkumi kā atbalsta trūkums rādītāju (izņemot virknes) nodošanai funkcijai, nepieciešamība palaist
“gcc -E” koda pirmapstrādei, saglabājot starpposma *.so, *.o un *.c failus pašreizējā direktorijā, neglabājot konvertētās versijas kešatmiņā un veicot nevajadzīgas parsēšanas stadijas (ilgas aizkaves katru reizi, kad tā tiek palaista).

Avots: opennet.ru

Pievieno komentāru