Inlinec - uusi tapa käyttää C-koodia Python-skripteissä

hanke inlinec Uusi menetelmä C-koodin integroimiseksi Python-skripteihin on ehdotettu. C-funktiot määritellään suoraan samassa Python-kooditiedostossa, korostettuna @inlinec-koristeella. Python-tulkki suorittaa yhteenvetokomentosarjan ja jäsennetään Pythonin tarjoamalla mekanismilla koodekit, joka mahdollistaa jäsentimen yhdistämisen skriptin muuntamiseksi ennen kuin tulkki jäsentää sen (pääsääntöisesti koodekkimoduulia käytetään läpinäkyvään tekstin transkoodaukseen, mutta sen avulla voit myös muuttaa komentosarjan sisältöä mielivaltaisesti).

Jäsenin on kytketty moduulina ("inlinec-tuonti inlinecistä"), joka suorittaa alkukäsittelyn ja kääntää lennossa @inlinec-merkinnöillä korostetut C-funktioiden määritelmät ctypes-sidoksiksi ja korvaa C-funktion rungon kutsu näihin siteisiin. Tällaisen muunnoksen jälkeen Python-tulkki vastaanottaa skriptin oikean muunnetun lähdetekstin, jossa C-funktioita kutsutaan käyttämällä ctyypit. Vastaavaa menetelmää käytetään myös projektissa Pyxl4, jonka avulla voit sekoittaa HTML- ja Python-koodia yhdessä tiedostossa.

# koodaus: inlinec
inlinecistä tuonti inlinec

@inlinec
def testi():
#sisältää
void testi() {
printf("Hei, maailma");
}

Kehitys on toistaiseksi esitetty kokeellisena prototyyppinä, jossa on puutteita, kuten tuen puute osoittimien (paitsi merkkijonojen) välittämiselle funktioon, tarve ajaa.
"gcc -E" koodin esikäsittelyä varten, välimuotoisten *.so-, *.o- ja *.c-tiedostojen tallentaminen nykyiseen hakemistoon, muunnetun version välimuistiin tallentamatta ja tarpeettomien jäsennysvaiheiden suorittamiseen (pitkät viiveet joka kerta kun se suoritetaan).

Lähde: opennet.ru

Lisää kommentti