Projekts ir piedÄvÄts jauns veids, kÄ inlinÄ integrÄt C valodas kodu Python skriptos. C valodas funkcijas tiek definÄtas tieÅ”i vienÄ failÄ ar Python kodu, izceļot ar dekoratoru Ā«@inlinecĀ». Apvienotais skripts tiek izpildÄ«ts tieÅ”i interpretrÄ« spython un tiek analizÄts, izmantojot Python nodroÅ”inÄto mehÄnismu , kas ļauj pievienot parseri, lai pÄrveidotu skriptu pirms tÄ analÄ«zes interpretrÄ« (parasti tiek izmantots codecs modulis, kas nodroÅ”ina caurspÄ«dÄ«gu teksta pÄrkodÄÅ”anu, bet ļauj arÄ« brÄ«vi transformÄt skripta saturu).
Parseris tiek pievienots kÄ modulis (Ā«from inlinec import inlinecĀ»), kas veic sÄkotnÄjo apstrÄdi un reÄlajÄ laikÄ pÄrvÄrÅ” @inlinec anotÄcijÄm izceltos C funkciju definÄ«cijas ctypes apvalkos un aizvieto C funkcijas Ä·ermeni ar Å”o apvalku izsaukumiem. PÄc tam, kad veiktas Å”Ädas izmaiÅas, Python interpretrÄ« saÅem pareizu pÄrveidoto skripta avotekstu, kurÄ C funkcijas tiek izsauktas ar . LÄ«dzÄ«gs paÅÄmiens tiek izmantots projektÄ , kas ļauj sajaukt HTML un Python kodu vienÄ failÄ.
# coding: inlinec
from inlinec import inlinec
@inlinec
def test():
#include<stdio.h>
void test() {
printf(«Hello, world»);
}
IzstrÄde joprojÄm tiek piedÄvÄta kÄ eksperimentÄls prototips, kurÄ ir novÄrotas tÄdas nepilnÄ«bas kÄ atbalsta trÅ«kums rÄdÄ«tÄju nodoÅ”anai funkcijai (izÅemot virknes), nepiecieÅ”amÄ«ba palaist
Ā«gcc -EĀ» kodu priekÅ”apstrÄdei, saglabÄjot starpposma *.so, *.o un *.c failus paÅ”reizÄjÄ direktorijÄ, pÄrvÄrsto variantu keÅ”oÅ”anas trÅ«kums un lieku analÄ«zes posmu izpilde (lieli aizkavÄjumi katrÄ palaiÅ”anÄ).
Avots: opennet.lv
