Inlinec - Python skriptlarida C kodidan foydalanishning yangi usuli

Loyiha inlinec C kodini Python skriptlariga inline integratsiyalashning yangi usuli taklif qilindi. C funktsiyalari to'g'ridan-to'g'ri "@inlinec" dekoratori tomonidan ta'kidlangan bir xil Python kod faylida aniqlanadi. Xulosa skripti xuddi Python tarjimoni tomonidan bajariladi va Python-da taqdim etilgan mexanizm yordamida tahlil qilinadi. kodeklar, bu tarjimon tomonidan skriptni tahlil qilishdan oldin uni o'zgartirish uchun parserni ulash imkonini beradi (qoida tariqasida, kodeklar moduli matnni shaffof transkodlash uchun ishlatiladi, lekin u shuningdek skript tarkibini o'zboshimchalik bilan o'zgartirishga imkon beradi).

Tahlillovchi modul sifatida ulanadi ("inlinec import inlinec'dan"), u dastlabki ishlov berishni amalga oshiradi va @inlinec izohlari yordamida ta'kidlangan C funksiyalarining ta'riflarini o'z-o'zidan ctypes bog'lanishlariga tarjima qiladi va C funksiyasining tanasini bilan almashtiradi. bu bog'lanishlarga qo'ng'iroq. Bunday o'zgartirishdan so'ng, Python tarjimoni skriptning to'g'ri aylantirilgan manba matnini oladi, unda C funktsiyalari yordamida chaqiriladi. turlari. Shunga o'xshash usul loyihada ham qo'llaniladi Pyxl4, bu sizga HTML va Python kodlarini bitta faylda aralashtirish imkonini beradi.

# kodlash: inlinec
inlinec import inlinec dan

@inlinec
def test():
#qo'shing
bekor test() {
printf("Salom, dunyo");
}

Ishlanma hozirgacha eksperimental prototip sifatida taqdim etilgan bo'lib, unda funktsiyaga ko'rsatkichlarni (satrlardan tashqari) o'tkazishni qo'llab-quvvatlamaslik, ishga tushirish zarurati kabi kamchiliklar mavjud.
β€œgcc -E” kodni oldindan qayta ishlash, oraliq *.so, *.o va *.c fayllarni joriy katalogda saqlash, aylantirilgan versiyani keshlash va keraksiz tahlil bosqichlarini bajarish (har safar ishlaganda uzoq kechikishlar) uchun.

Manba: opennet.ru

a Izoh qo'shish