Inlinec - mod ġdid biex tuża kodiċi C fl-iskripts Python

Proġett inlinec Ġie propost metodu ġdid għall-integrazzjoni inline tal-kodiċi C fi skripts Python. Il-funzjonijiet C huma definiti direttament fl-istess fajl tal-kodiċi Python, enfasizzat mid-dekoratur “@inlinec”. L-iskrittura fil-qosor hija esegwita kif inhu mill-interpretu Python u parsed bl-użu tal-mekkaniżmu pprovdut f'Python codecs, li jagħmilha possibbli li tgħaqqad parser biex jittrasforma l-iskrittura qabel ma jiġi analizzat mill-interpretu (bħala regola, il-modulu tal-codecs jintuża għal transkodifikazzjoni tat-test trasparenti, iżda jippermetti wkoll li tittrasforma b'mod arbitrarju l-kontenut tal-iskritt).

Il-parser huwa konness bħala modulu ("minn inlinec import inlinec"), li jwettaq l-ipproċessar inizjali u jittraduċi on-the-fly id-definizzjonijiet tal-funzjonijiet C enfasizzati bl-użu ta' annotazzjonijiet @inlinec f'irbit ta' ctypes u jissostitwixxi l-korp tal-funzjoni C b' sejħa għal dawn l-irbit. Wara trasformazzjoni bħal din, l-interpretu Python jirċievi t-test tas-sors maqlub korrett tal-iskrittura, li fih il-funzjonijiet C jissejħu bl-użu ctipi. Metodu simili jintuża wkoll fil-proġett Pyxl4, li jippermettilek tħallat HTML u Python kodiċi f'fajl wieħed.

# kodifikazzjoni: inlinec
minn inlinec importazzjoni inlinec

@inlinec
test def ():
#inkludu
test null () {
printf ("Hello, dinja");
}

L-iżvilupp s'issa huwa ppreżentat bħala prototip sperimentali, li fih nuqqasijiet bħal in-nuqqas ta 'appoġġ għall-mogħdija ta' indikaturi (ħlief kordi) għall-funzjoni, il-ħtieġa li titħaddem
“gcc -E” għall-ipproċessar minn qabel tal-kodiċi, iffrankar ta’ fajls intermedji *.so, *.o u *.c fid-direttorju kurrenti, mhux caching tal-verżjoni kkonvertita u jwettqu stadji ta’ parsing bla bżonn (dewmien twil kull darba li taħdem).

Sors: opennet.ru

Żid kumment